我正在使用以下脚本运行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构造提供的外部变量的作用域有关。例如(与您的示例类似):
each
foreach
def builds = [:] [1,2].each { builds[a] = { print "${it}\n" } } parallel builds
印刷品:
null null
而:
def builds = [:] [1,2].each { def a = it; builds[a] = { print "${a}\n" } } parallel builds
将打印
1 2
如预期的那样。因此,请使用局部变量存储迭代值。