如何在Jenkins文件Groovy函数中访问阶段外的变量?
我的jenkins文件如下所示:如何在Jenkins文件Groovy函数中访问阶段外的变量?,jenkins,groovy,jenkins-pipeline,Jenkins,Groovy,Jenkins Pipeline,我的jenkins文件如下所示: import groovy.json.* def manifestFile = "C:\\manifest.yml" node { stage('Build') { } stage('Deploy') { checkDeployStatus() } } def boolean checkDeployStatus() { echo "${manifestFile}" return true } 我得到的例外情况如下:
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)
如何访问节点外部的变量?Groovy在脚本级别有一种不同的作用域。我无法在脑海中把一切都整理好。不必解释它的所有原因(可能没有做到公正),我可以告诉您(如您所见),
manifestFile
变量不在该函数的作用域内。只是不要声明manifestFile
(即不要将def
放在它前面)。这将使它成为一个“全局”(不是真正的,但出于您的目的)变量,那么它应该可以在方法调用中访问 试试这个
import groovy.json.*
manifestFile = "C:\\manifest.yml"
node {
stage('Build') {
}
stage('Deploy') {
checkDeployStatus()
}
}
def boolean checkDeployStatus() {
echo "${manifestFile}"
return true
}