0

プラットフォームがunixまたはwindowsasの場合に出力する小さなコードがあります

<if>
<equals=${arg1} value="linux-86"/>
<then>
<echo message="linux"
<then>
<elseif>
<equals=${arg1} value="linux-64"/>
<then>
<echo message="linux"/>
</then>
</elseif>
<else>
<echo message="Windows">
</else>
</if>

ここで、同じメッセージの最初の 2 つの条件を不必要にチェックしていることがわかります。ant には c || にあるような OR 演算子があるので、arg1=linux-64||linux-86....if と書くことができます。ここで多くの時間を節約するために、これをどのように使用すればよいか教えてください

4

3 に答える 3

2
<condition property="WinPlatform.Check">
        <or>
            <equals arg1="${param1}" arg2="win-x86"/>
            <equals arg1="${param1}" arg2="win-x86-client"/>
            <equals arg1="${param1}" arg2="win-x64"/>
        </or>
    </condition>

<target name="Mytarget" if="WinPlatform.Check">
        <echo message="executing windows family build:::${param1}"/>
    </target>

Mytarget今あなたのパラメータで呼び出してください、それは動作します

于 2012-05-22T08:41:41.937 に答える
1

ifタスクはant-contribの一部です。コア Ant では使用できません。

コア Ant ではさまざまな条件が利用可能であり、たとえば、ターゲットの実行を条件付きにするために使用できます。

1.8 より前では、条件が「プロパティが設定されているか」を評価するかどうかを評価します。

<target name="test" if="foo" unless="bar"/>

1.8 以降、if/unless 条件で「プロパティが true/false か」を評価できるようになりました。

<target name="test" if="${foo}" unless="${bar}"/>
于 2012-05-18T12:15:20.633 に答える
-2

アリのマニュアルを見てみましょう。http://ant.apache.org/manual/Tasks/conditions.html

または「タスクの場合はアリ」のGoogle。

于 2012-05-18T11:31:01.303 に答える