Jenkins 如何跨文件共享变量

Jenkins 如何跨文件共享变量,jenkins,groovy,Jenkins,Groovy,我有一组从主Jenkins文件调用的子Jenkins文件。主Jenkins文件定义了几个变量,我不想避免在子Jenkins文件中定义这些变量 可能吗 主文件的示例: #!groovy String var1 = "something" String var2 = "something" load 'JenkinsFile-child1' load 'JenkinsFile-child2' JenkinsFile-child1: #!groovy echo var1 echo var2

我有一组从主Jenkins文件调用的子Jenkins文件。主Jenkins文件定义了几个变量,我不想避免在子Jenkins文件中定义这些变量

可能吗

主文件的示例:

#!groovy

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

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

#!groovy

echo var1
echo var2
管道脚本:

node{
    load 'main.groovy'
}
main.groovy

var1 = "world"
load 'child.groovy'
童装

echo "hello $var1"
将打印
hello world

在脚本中可以为当前作用域(整个脚本类)声明变量(字段)的键

若将赋值给脚本中未声明的变量,则执行此操作

正常情况下,也应该工作,但不幸的是:

import groovy.transform.Field;
@Field String var1 = "world";
管道脚本:

node{
    load 'main.groovy'
}
main.groovy

var1 = "world"
load 'child.groovy'
童装

echo "hello $var1"
将打印
hello world

在脚本中可以为当前作用域(整个脚本类)声明变量(字段)的键

若将赋值给脚本中未声明的变量,则执行此操作

正常情况下,也应该工作,但不幸的是:

import groovy.transform.Field;
@Field String var1 = "world";

它是什么
load
-它是jenkins管道函数吗?因为在groovyshell中,
:load
load
执行Jenkins文件。这就像python的import语句。它是什么
load
-它是jenkins管道函数吗?因为在groovyshell中,
:load
load
执行Jenkins文件。这就像python的import语句。