2017-01-10 10 views
0

定義内に既存のグローバル変数値を上書きする際に問題があります。 jenkinsfileの簡単な例ピース:Jenkins Groovy - 定義内のグローバル変数を上書きする

my_var = 0 

def my_def() { 
    my_var = 1 
} 

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

は、エコーの出力は0であり、私は私がこの記事読んで、それは1 になりたい:Groovy: what's the purpose of "def" in "def x = 0"?をしかし、私はそれを動作させることができませんでした。 このような定義から値を返す方法の説明が見つかりませんでした。

答えて

1

私はあなたが変換を使用したいと思う。私の頭の上から、それはのようになります:

@groovy.transform.Field int my_var = 0 

def my_def() { 
    my_var = 1 
} 

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

素晴らしい、それは私のために働いた。どうも! '@groovy.transform.Field INT MY_VAR = 0 DEF my_def(){ MY_VAR = 1 } ノード{ステージ 'テスト' my_def() エコー "OUTPUT:" + MY_VAR } ' –

関連する問題