【发布时间】:2016-04-11 14:28:56
【问题描述】:
我正在使用 Gradle Jenkins 插件创建一个执行 Gradle 构建的 Jenkins 作业。 我有几个始终需要的参数,这些参数被传递给 Jenkins“参数化构建”。这些参数正确地传递给 gradlew.bat,格式如下:
-DParam1=value1
现在有一些额外的参数本质上是动态的,我更喜欢使用单个 Jenkins 参数,例如“AdditionalParamters”并像这样传递这些值:
"-DoptionalParam1=value1 -DOptionalParam2=value2".
如果我使用这样的参数,那么传递给 Gradle 的值是“-DAdditionalParamters=-DoptionalParam1=value1 -DOptionalParam2=value2”,这不是我想要传递的。
那么有没有办法通过使用单个 Jenkins 参数将多个系统参数传递给 gradle?
【问题讨论】:
-
为什么要一键传递多个系统属性?有什么优势?
-
@BenGreen,我们有超过 50 个不同的配置属性,其中大部分都有默认值。但是,我们可能需要通过设置系统属性来更改这些默认值。因此,如果我们必须更改第 48 和第 49 属性,我可以将其设置为 -DoptionalParam48=value48 -DOptionalParam49=value49
-
那么,如果您在 gradle 中检查这些参数,为什么不能在 jenkins 作业中只使用 -DoptionalParam48=value48 呢?拥有 -DAdditionalParameters=-DoptionalParam48=value48 有什么好处
-
为了让我从 jenkins 获得一个 -DoptionalParam48=value48 传递给 gradle,我必须在 Jenkins“参数化构建”中添加一个新参数“optionalParam48”。同样,1-50 个参数中的每一个都需要相同的方法,这使得 Jenkins 参数页面变得丑陋。这就是我考虑使用通用“OptionalParamters”方法的原因。使用 OptionalParamters,我可以将尽可能多的 name=value 对传递给 Gradle