行
我有詹金斯的工作(詹金斯版本更新)。
在我的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”方式。
我的:
答案 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)
答案 2 :(得分:3)
让Jenkins首先将参数设为-D。然后你可以用-P传递给Gradle。例如,如果您有一个名为env的参数,则可以将其作为
添加到任务中 -Penv=${env}