Jenkins Groovy并行变量不起作用
我正在使用以下脚本运行Jenkins Build Flow插件:
def builds = [:][1,2].each {
builds[it] = { build("test", parm: ("$it")) }
}
parallel builds
但是,尽管正确填充了哈希(builds [it]),但parm始终为null。我也尝试了以下方法:
builds[it] = { build("test", parm: $it)) }builds[it] = { build("test", parm: it)) }
但是它始终为空。
任何人都可以给我关于如何使用$ it或构建作业中任何其他变量的任何指示。
回答:
似乎您在Build Flow Plugin中遇到了一个错误(我已经看到了Pipeline
DSL的类似问题)。没有专家,但它似乎与groovy闭包以及由each
或foreach
构造提供的外部变量的作用域有关。例如(与您的示例类似):
def builds = [:][1,2].each {
builds[a] = { print "${it}\n" }
}
parallel builds
印刷品:
nullnull
而:
def builds = [:][1,2].each {
def a = it;
builds[a] = { print "${a}\n" }
}
parallel builds
将打印
12
如预期的那样。因此,请使用局部变量存储迭代值。
以上是 Jenkins Groovy并行变量不起作用 的全部内容, 来源链接: utcz.com/qa/412581.html