无法在Jenkins管道作业中获取构建参数

时间:2016-11-30 23:05:10

标签: jenkins groovy

我试图在Jenkins管道作业中获取一些构建参数。在此上下文中,参数在复选框中定义"此项目已参数化"并在构建时通过。

在工作中我称之为两个分支:

parallel firstBranch: {
    build job: 'Run Blah', parameters: [string(name: 'BLAH', value: '$app.blah.blah')]

}, secondBranch: {
    build job: 'Run BlahBlah', parameters: [string(name: 'BLAH', value: '$app.blah.blah')]
}

我已尝试以各种方式访问​​构建参数:app.blah.blah:

  • $ {app.blah.blah}
  • $ app.blah.blah
  • " $ {app.blah.blah}"
  • app.blah.blah
  • currentBuild.buildVariableResolver.resolve(" app.blah.blah&#34)
  • System.getenv(" app.blah.blah&#34)

我总是得到一些我可以理解的例外,但我开始变得非常恼火。为了上帝的缘故,在脚本中获取构建参数不应该是这很难。我做错了什么?

3 个答案:

答案 0 :(得分:0)

这对我有用:

println blah

所以我想你应该这样做就好了:

parallel firstBranch: {
    build job: 'Run Blah', parameters: [string(name: 'BLAH', value: blah)]

}, secondBranch: {
    build job: 'Run BlahBlah', parameters: [string(name: 'BLAH', value: blah)]
}

答案 1 :(得分:0)

好吧,看起来你的构建参数名称中没有点!混淆Groovy以为你正在访问一个类。很糟糕,我无法在Ant脚本和Jenkins工作中保持我的参数一致,但现在这并不是一件大事。如果有人知道如何访问虚线变量,请随意添加输入!

更正构建参数变量的语法:alphanumeric_underline_only

正确的访问语法:println(alphanumeric_underline_only)

答案 2 :(得分:0)

如果管道的名称中带有dot参数,则可以尝试使用getProperty()来获取此参数的值,例如(已测试):

//println params.MyApp.Api.Server // will not work
//println "${MyApp.Api.Server}" // will not work
println getProperty('MyApp.Api.Server') //works perfectly