当前位置: 首页 > 面试题库 >

Jenkins Groovy并行变量不起作用

濮阳研
2023-03-14
问题内容

我正在使用以下脚本运行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闭包以及由eachforeach构造提供的外部变量的作用域有关。例如(与您的示例类似):

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

如预期的那样。因此,请使用局部变量存储迭代值。



 类似资料:
  • 我正在尝试为java设置一个PATH环境变量。当我按照下面的方式设置变量值时,在cmd中输入“java”时,它可以很好地工作 但是对于下面的错误,“java”不被识别为内部或外部命令, 我用的是windows 8。你知道为什么上面的变量不起作用吗?

  • 求帮助并行执行cucumber7。我的项目是cucumber和爪哇宁静。在这个链接https://johnfergusonsmart . com/parallel-test-execution-with-cucumber-and-serenity-BDD/中,它显示可以运行,但尝试了不同的组合,看起来我错过了一些东西。 这是我的pom。xml文件: 4.0.0 要执行:我将相同的标签添加到多个功能

  • 问题内容: 我想插入变量,并到我的桌前。现在,从我可以告诉我的所有信息中,我应该做的就是,下面是我所要做的,但是这根本不会在我的表中插入任何内容。如果我对应该写的内容进行硬编码(使用它将示例写到表中,那么到目前为止我的连接和语法正确)。任何帮助将不胜感激! 我也尝试过这个: 和: 问题答案: 您需要将SQL语句和参数作为单独的参数传递: 或使用可变参数语法(splat ) : 您的版本尝试传入包含

  • 问题内容: 我究竟做错了什么?为什么$ path在函数外部正确打印,但是在函数内部无法访问? 问题答案: 因为它没有在函数中定义。 有几种方法可以解决此问题: 1)使用亚历克斯所说的话,告诉函数它是一个全局变量: 2)将其定义为常量: 3)如果特定于该函数,则将其传递给该函数: 根据功能的实际工作原理,其中之一会起作用。

  • MyBatis 3.2.8。我在SELECT中有以下代码: 当时,一切正常。但是,当时,会出现以下异常:

  • 问题内容: 我是php的新手,这可能是一个愚蠢的错误……但是我不知道发生了什么。我正在尝试使用php在数据库中创建一个表。我想用用户名命名该表。我正在使用变量。这是我的代码 因此,这将创建一个名为的表。变量不会保留。但是- 当我-变量结转。我对此很陌生- 因此,感谢您的帮助。 问题答案: 在您的SQL查询之后添加它-(它确实可以帮助并加快错误纠正时间) 回声 这在您的实例: 发生MySQL错误。错