0

unlessオプションのパラメーターをantタスク呼び出しに渡して、省略した場合(条件またはif属性を使用する場合に重要)、呼び出されたターゲットに未設定として表示されるようにしたいと思います。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>

optArgのオプションの性質を失うことなく、ant呼び出しが複製されないように、ifステートメントを省略したいと思います。私はすでにこの質問を見つけましたが、これは別の問題をカバーしているようです。

私はAnt1.7とant-contribを使用しています。

何か案は?ありがとう!

編集:私はそれが本当に不可能である理由を説明する答えも受け入れます。

4

1 に答える 1

0

ブロックを使用してプロパティセットを構築し、後で1つのタスク呼び出し<if>内でそれを参照することで、必要な動作を取得できる場合があります。<ant><propertyset refid="whatever"/>

于 2012-01-18T15:23:41.147 に答える