有没有办法,我可以访问闭包之外的变量。此处的结果是stage
中的Jenkinsfile
。所以,代码片段如下所示:
node('pool'){
try{
stage('init'){
def list = []
//some code to create the list
}
stage('deploy'){
//use the list create in the above stage/closure
}
}
catch(err){
//some mail step
}
}
使用此代码,我无法访问在第一个list
中创建的stage/closure
。
如何设置让新创建的list
可以访问下一个阶段/闭包?
答案 0 :(得分:1)
@tim_yates ..有你的建议。这有效。最后很容易:)
node('pool') {
try {
def list = [] //define the list outside of the closure
stage('init') {
//some code to create/push elements in the list
}
stage('deploy') {
//use the list create in the above stage/closure
}
} catch (err) {
//some mail step
}
}
答案 1 :(得分:0)
我知道它已经很晚了,但值得一提的是,当您定义类型或def
(用于动态解决方案)时,您需要创建本地范围变量将仅在封闭内部可用。
如果省略声明,变量将可用于整个脚本:
node('pool'){
try {
stage('Define') {
list = 2
println "The value of list is $list"
}
stage('Print') {
list += 1
echo "The value of list is $list"
}
1/0 // making an exception to check the value of list
}
catch(err){
echo "Final value of list is $list"
}
}
返回:
The value of list is 2
The value of list is 3
Final value of list is 3