2017-06-19 45 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'在適當的位置執行jenkins文件。這就像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";