2017-06-19 123 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";