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

Jenkins Groovy - overwriting global variable in definition

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

my_var = 0

def my_def() {
  my_var = 1
}

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

echo 的输出是 0,我希望它是 1。 我读了这个 post: Groovy: what's the purpose of "def" in "def x = 0"? 但我无法让它工作。 我找不到关于如何从这样的定义中 return 值的任何解释。

我相信你想使用转换。在我的脑海中,它看起来像:

@groovy.transform.Field int my_var = 0

def my_def() {
  my_var = 1
}

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