0
我希望能够将一个可选参数传递给一个ant任务调用,以便在被调用目标被忽略时显示为未设置(在条件中很重要或在使用unless
或if
属性时很重要)。我不知道是否设置了optArg,所以我无法对参数进行硬编码。<ant>任务调用的可选参数?
示例:蚂蚁目标someTarget需要强制参数mandatoryArg和支持可选的参数OPTARG。
我可以cludgy复制像这样实现这一点:
<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语句,使蚂蚁呼叫不重复,又不失可选性质OPTARG。我已经找到this question,这似乎涵盖了一个不同的问题。
我使用Ant 1.7和ant-contrib。
任何想法?谢谢!
编辑:我也接受解释为什么它真的不可能的答案。
引用一个单一
<ant>
任务调用内部后务必附上代码片段在反引号'的行为像这样'这样你的代码就可以看到了。干杯〜 – 2012-01-18 15:28:41@David:听起来很有希望,但是我怎么去添加propertyset呢?你能提供一个代码示例吗?谢谢! – 2012-01-18 21:45:26
好的,我自己发现。您可以定义一个包含mandatoryArg *和* optArg的属性集,每次引用时都会对其进行动态评估。然后,当antcall发生时,它只包含实际定义的属性。所以我会接受答案。 – 2012-01-20 16:55:20