我一直在Jenkins中使用Parametrized-pipelines并注意到在使用参数时,该值既可以从脚本范围使用,也可以通过params.variable使用。 PARAMETER == true params.PARAMETER == true
在groovy中,是否可以在方法中向脚本范围添加变量?我想获得与以下类似的功能......
// I don't want to have to declare value here
def function1(){
value = 1
}
def function2(){
assert value == 1
}
function1()
function2()
有没有办法从function2中访问值而不需要像......那样做什么?
value = 0
def function1() {
value = 1
...
答案 0 :(得分:0)
这个管道工作正常:
def f1(){
aaa = "hello"
}
def f2(){
assert aaa=="hello"
}
node{
f1()
f2()
}
管道定义实际上是扩展org.jenkinsci.plugins.workflow.cps.CpsScript
的groovy.lang.Script实例所以groovy脚本属性应该在这里工作。
答案 1 :(得分:0)
还可以做类似的事情:
def f1() {
env.aaa = "hello"
}
def f2() {
assert aaa=="hello"
}
node{
f1()
f2()
}
基本上将其设置为环境变量。
答案 2 :(得分:0)
您可以在脚本中使用范围变量
import groovy.transform.Field
@Field List awe = [1, 2, 3]
def awesum() { awe.sum() }
assert awesum() == 6
http://docs.groovy-lang.org/2.4.9/html/gapi/groovy/transform/Field.html