0

我希望能够将一个可选参数传递给一个 ant 任务调用,这样如果它被省略(在条件或使用unlessorif属性时很重要),它就会显示为未设置到被调用的目标。我不知道是否设置了 optArg,所以我无法对参数进行硬编码。

示例:ant 目标someTarget需要强制参数mandatoryArg并支持可选参数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的可选特性。我已经找到了这个问题,它似乎涵盖了一个不同的问题。

我使用 Ant 1.7 和 ant-contrib。

有任何想法吗?谢谢!

编辑:我也接受解释为什么它真的不可能的答案。

4

1 回答 1

0

您可能能够通过使用该<if>块来构建一个属性集,然后在<ant>稍后的单个任务调用中引用它来获得您想要的行为<propertyset refid="whatever"/>

于 2012-01-18T15:23:41.147 回答