我的jenkins文件如下所示:
import groovy.json.*
def manifestFile = "C:\\manifest.yml"
node {
stage('Build') {
}
stage('Deploy') {
checkDeployStatus()
}
}
def boolean checkDeployStatus() {
echo "${manifestFile}"
return true
}
我得到的例外情况如下:
groovy.lang.MissingPropertyException: No such property: manifestFile for class: groovy.lang.Binding
at groovy.lang.Binding.getVariable(Binding.java:63)
如何访问节点外的变量?
答案 0 :(得分:4)
Groovy在脚本级别有不同的范围。我无法将它全部整理在脑海中。我没有尝试解释它的所有原因(并且可能没有做到公道),我可以告诉你(正如你所看到的),manifestFile
变量不在该函数的范围内。只是不要声明manifestFile
(即不要将def
放在它前面)。这将使它成为一个全球性的" (不是真的,但为了你的目的)变量,那么它应该在方法调用中可访问。
答案 1 :(得分:2)
试试这个
import groovy.json.*
manifestFile = "C:\\manifest.yml"
node {
stage('Build') {
}
stage('Deploy') {
checkDeployStatus()
}
}
def boolean checkDeployStatus() {
echo "${manifestFile}"
return true
}