2016-11-30 110 views
0

我正在尝试在Jenkins管道作业中获取一些生成参数。在这种情况下,参数在复选框“this project is parameterized”并在构建时传递。在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。等等}
  • $ app.blah.blah
  • “$ {} app.blah.blah”
  • app.blah.blah
  • currentBuild.buildVariableResolver.resolve( “app.blah.blah”)
  • System.getenv( “app.blah.blah”)

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

+0

而在作业定义,你增加了一个“字符串参数”与“app.blah.blah”的名字一起有可能是默认值?假设这都是真的,你是如何将参数传递给构建的? –

+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)] 
} 
+0

是的,它最终成为构建参数名称中的点,令人困惑的Groovy。空格和圆点要小心! –

+0

你也可以试试这个:$ {app.blah.blah}但我仍然认为groovy会考虑每个点的函数调用。 – MaTePe

0

嗯,貌似你不能有圆点你的构建参数名称! Groovy认为你正在访问一个类。吮吸我不能保持我的参数在Ant脚本和Jenkins作业中保持一致,但现在它不是一个大问题。如果有人知道如何访问虚线变量,请随时添加输入!

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

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

+0

对于未来的读者,我建议您将您的答案编辑为正式的答案,并且其他读者可以使用。在这个网站的答案总是非常有用,并在开发人员的许多谷歌搜索出现。解释你如何解决它与一个正确的语法的例子。 –

相关问题