2017-06-19 8 views
0

メインのJenkinsFileから呼び出される子JenkinsFilesのセットがあります。メインのJenkinsFileはいくつかの変数を定義していますが、これは子のJenkinsFilesでの定義を避けることはできません。JenkinsFilesで共有変数を持つ方法

これは可能ですか?

主JenkinsFileの例:

#!groovy 

String var1 = "something" 
String var2 = "something" 

load 'JenkinsFile-child1' 
load 'JenkinsFile-child2' 

JenkinsFile-child1の:

#!groovy 

echo var1 
echo var2 
+0

それは何である 'load' - それはジェンキンスパイプライン機能ですか?これはgroovyshellで ':load'です。 – daggett

+0

' load'はjenkinsfileを実行します。これはpythonのimport文のようです。 – ronakg

答えて

0

パイプラインスクリプト:

node{ 
    load 'main.groovy' 
} 

main.groovy

var1 = "world" 
load 'child.groovy' 

child.groovy

echo "hello $var1" 

hello world

(スクリプト全体のクラスのための)現在のスコープのためのスクリプトでは、変数(フィールド)を宣言することができ、キー

を印刷し、あなたがあれば行いますスクリプトで宣言されていない変数に代入します。

通常following annotationも動作するはずですが、残念ながらありません:

import groovy.transform.Field; 
@Field String var1 = "world"; 
関連する問題