Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables Jenkins Groovy并行变量不工作_Variables_Jenkins_Groovy_Parallel Processing - Fatal编程技术网

Variables Jenkins Groovy并行变量不工作

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

我正在使用以下脚本运行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", 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来说似乎是通用的,找到了这篇关于这个问题的博文