【问题标题】:Jenkins Groovy - overwriting global variable in definitionJenkins Groovy - 在定义中覆盖全局变量
【发布时间】:2017-01-10 18:22:12
【问题描述】:

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

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"? 但我无法让它工作。 我找不到任何关于如何从这样的定义中返回值的解释。

【问题讨论】:

    标签: jenkins groovy jenkins-pipeline


    【解决方案1】:

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

    @groovy.transform.Field int my_var = 0
    
    def my_def() {
      my_var = 1
    }
    
    node {
      stage 'test'
      my_def()
      echo my_var
    }
    

    【讨论】:

    • 太好了,它对我有用。谢谢! @groovy.transform.Field int my_var = 0 def my_def() { my_var = 1 } node { stage 'test' my_def() echo "OUTPUT: "+my_var }
    猜你喜欢
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-13
    • 1970-01-01
    • 2022-07-14
    • 1970-01-01
    相关资源
    最近更新 更多