Jenkins Gradle插件 - 将参数传递为-P而不是-D

时间:2014-12-30 22:49:29

标签: plugins parameters jenkins gradle parameter-passing

我有詹金斯的工作(詹金斯版本更新)。

在我的Jenkins工作中,我有几个参数(字符串类型)。

例如:参数 1 =值 1 ...参数 N =值 N

现在,在Jenkins的工作中,在 BUILD 部分,我正在调用“调用Gradle”

在这个Gradle部分,我正在调用一个任务。例如: clean build

我需要的是:我想将上述Jenkins作业的参数传递给Gradle as -PparamN = ValueN方式?

但是当我在Gradle Build部分的“ Switches ”选项中传递-Pparam1 = $ {param1} -Pparam2 = $ {param2} ...等等时,我看到Jenkins日志正在显示:

使用参数成功调用了Gradle exectuable。

...somepath.../bin/gradle -Dparam1=value1 -Dparam2=value2 ... -DparamN=valueN -Pparam1=value1 -Pparam2=value2 ... -PparamN=valueN

这告诉我,Jenkins非常友好地将参数(我在作业中定义的)传递给Gradle作为免费的“-D”方式。

我的:

  1. 好吧,我不想将上述参数传递给-Dxxx = yyy
  2. 我只想传递参数-Pxxx = yyy way
  3. 使用“Invoke Gradle”插件可以实现吗?

3 个答案:

答案 0 :(得分:5)

我想在这个时候,没有办法告诉Jenkins的Gradle插件没有将参数(在Jenkins作业中定义)传递为-Dxxx = $ yyy方式(它为我们免费做的) 。

我们可以使用"开关" box / option将这些参数指定为-P方式,但它有点混淆-D参数将如何影响Gradle用于运行自身的JVM以及-D参数是否会以某种方式与-P参数冲突(因为它们正在获取)传递/定义两次)。

作为一种解决方法,我停止使用Gradle插件并使用" Execute Shell" BUILD部分下的选项,并使用相应的参数(-P way)和任务(s)调用gradle可执行文件。

这只是一种简单的方法,可以通过参数和任务来调用Gradle,例如您在CMD或$ prompt中运行的内容。

答案 1 :(得分:4)

与Jenkins Gradle插件1.27一样,有一个复选框告诉插件不要将参数作为系统属性传递并手动添加一些参数。 您还可以选择将所有参数作为Gradle属性传递给您可能想要的内容。

enter image description here

答案 2 :(得分:3)

让Jenkins首先将参数设为-D。然后你可以用-P传递给Gradle。例如,如果您有一个名为env的参数,则可以将其作为

添加到任务中
 -Penv=${env}