我希望能够将一个可选参数传递给ant任务调用,这样,如果省略它,它就会显示为未设置给被调用的目标(在条件或使用unless
或if
属性时很重要)。我不知道是否设置了optArg,所以我无法对参数进行硬编码。
示例:ant targetsomeTarget需要一个强制参数commandoryArg,并支持一个可选参数optArg。
我可以通过包括这样的复制来实现这一点:
<if><equals arg1="${optArg}" arg2="true" />
<then>
<ant dir="someDir" target="someTarget" inheritAll="false">
<property name="mandatoryArg" value="42" />
<property name="optArg" value="true" />
</ant>
</then>
<else>
<ant dir="someDir" target="someTarget" inheritAll="false">
<property name="mandatoryArg" value="42" />
</ant>
</else>
</if>
我想省略if语句,这样ant调用就不会重复,而不会失去optArg的可选性质。我已经找到了这个问题,它似乎涵盖了另一个问题。
我使用蚂蚁1.7和蚂蚁contrib。
有什么想法吗?谢谢
编辑:我也接受解释为什么这真的不可能的答案。
您可以通过使用<if>
块来构建属性集,然后在稍后使用<propertyset refid="whatever"/>
的单个<ant>
任务调用中引用它来获得所需的行为