从Jenkins作业调用ant时,任何空白的Jenkins参数都会像空字符串一样传递给ant:
ant -Dfoo=
Ant然后考虑设置foo
属性,因此在执行此操作时不会将其设置为默认值:
<property name="foo" value="default" />
解决此问题的最佳方法是什么,以便在Jenkins中将空白的参数视为未设置为ant,以便将属性初始化为默认值?
使用默认值在Jenkins中配置参数不是一个可接受的解决方案,因为有时我希望从另一个参数的值计算默认值。
到目前为止,我最好的想法是使用两个属性解决它。 Jenkins将设置foo_override
,我默认为空字符串来处理在Jenkins之外运行ant的情况。然后我根据foo
是否为空字符串,使用条件将foo_override
分配给默认值或foo_override
。
<property name="foo_override" value="" />
<condition property="foo" value="default" else="${foo_override}">
<equals arg1="${foo_override}" arg2="" />
</condition>