Jenkins Groovy - 在定义中覆盖全局变量

时间:2017-01-10 18:22:13

标签: jenkins groovy jenkins-pipeline

我在覆盖定义中的现有全局变量值时遇到问题。一个简单的jenkins文件示例:

my_var = 0

def my_def() {
  my_var = 1
}

node {
  stage 'test'
  my_def()
  echo my_var
}

echo的输出为0,我希望它为1。 我读过这篇文章:Groovy: what's the purpose of "def" in "def x = 0"?但我无法使其发挥作用。 我无法找到如何从这样的定义中返回值的任何解释。

1 个答案:

答案 0 :(得分:2)

我相信你想要使用变换。在我的头顶,这看起来像:

@groovy.transform.Field int my_var = 0

def my_def() {
  my_var = 1
}

node {
  stage 'test'
  my_def()
  echo my_var
}