如何将变量放入脚本范围?

时间:2017-09-06 02:46:00

标签: jenkins groovy

我一直在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
...

3 个答案:

答案 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