我有一个contants.groovy
文件,如下所示
def testFilesList = 'test-package.xml'
def testdataFilesList = 'TestData.xml'
def gitId = '9ddfsfc4-fdfdf-sdsd-bd18-fgdgdgdf'
我有另一个将在Jenkins管道作业中调用的groovy文件
def constants
node ('auto111') {
stage("First Stage") {
container('alpine') {
script {
constants = evaluate readTrusted('jenkins_pipeline/constants.groovy')
def gitCredentialsId = constants."${gitId}"
}
}
}
}
但constants."${gitId}"
表示"无法从null对象"获取gitID。我怎么得到它?
答案 0 :(得分:3)
这是因为它们是局部变量,不能从外部引用。使用@Field
将其转换为字段。
import groovy.transform.Field
@Field
def testFilesList = 'test-package.xml'
@Field
def testdataFilesList = 'TestData.xml'
@Field
def gitId = '9ddfsfc4-fdfdf-sdsd-bd18-fgdgdgdf'
return this;
然后在主脚本中,您应该使用load
步骤加载它。
script {
//make sure that file exists on this node
checkout scm
def constants = load 'jenkins_pipeline/constants.groovy'
def gitCredentialsId = constants.gitId
}
您可以在this answer
中找到有关变量范围的更多详细信息