Variables Jenkins Groovy并行变量不工作
我正在使用以下脚本运行Jenkins Build Flow插件:Variables Jenkins Groovy并行变量不工作,variables,jenkins,groovy,parallel-processing,Variables,Jenkins,Groovy,Parallel Processing,我正在使用以下脚本运行Jenkins Build Flow插件: def builds = [:] [1,2].each { builds[it] = { build("test", parm: ("$it")) } } parallel builds 但是,尽管哈希(builds[it])被正确填充,parm始终为空。我还尝试了以下方法: builds[it] = { build("test", parm: $it)) } builds[it] = { build("test
def builds = [:]
[1,2].each {
builds[it] = { build("test", parm: ("$it")) }
}
parallel builds
但是,尽管哈希(builds[it])被正确填充,parm始终为空。我还尝试了以下方法:
builds[it] = { build("test", parm: $it)) }
builds[it] = { build("test", parm: it)) }
但它总是空的
有谁能告诉我如何使用$it或构建作业中的任何其他变量。根据我认为语法应该是:
builds[it] = { build("test", param1: it) }
i、 e.param1
参数名称需要逐字读取param
,后跟以1开头的顺序整数 根据语法,我认为语法应该是:
builds[it] = { build("test", param1: it) }
i、 e.
param1
参数名称需要逐字读取param
,后跟以1开头的顺序整数 看起来您在构建流插件中遇到了一个bug(我在管道DSL中也看到过类似的问题)。没有专家,但它似乎与groovy闭包和外部变量的作用域有关,外部变量由每个或foreach
构造提供。
例如(对你的例子微笑):
印刷品:
null
null
而:
def builds = [:]
[1,2].each {
def a = it;
builds[a] = { print "${a}\n" }
}
parallel builds
将打印
1
2
正如所料。因此,使用一个局部变量来存储迭代值。似乎您在构建流插件中遇到了一个bug(我在管道DSL中看到了类似的问题)。没有专家,但它似乎与groovy闭包和外部变量的作用域有关,外部变量由每个或foreach
构造提供。
例如(对你的例子微笑):
印刷品:
null
null
而:
def builds = [:]
[1,2].each {
def a = it;
builds[a] = { print "${a}\n" }
}
parallel builds
将打印
1
2
正如所料。所以,使用一个局部变量来存储迭代值。我仍然没有得到传递给Job的参数值我仍然没有得到传递给Job的参数值真棒,没有意识到有错误,但是你的解决方案很好,谢谢。可能不是错误,而且对groovy来说似乎是通用的,找到了这篇关于这个问题的博文真棒,我不知道有一个bug,但是你的解决方案很好,谢谢。也许不是bug,而且对groovy来说似乎是通用的,找到了这篇关于这个问题的博文