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>

在这里我们可以看到我们不必要地检查相同消息的前两个条件,ant 中是否有像 c || 中那样的 OR 运算符,所以我们可以写 arg1=linux-64||linux-86....如果有请告诉我应该如何使用这将在这里节省大量时间

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 开始,如果/除非条件可以评估“属性是真/假”:

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

你为什么不看一下ant手册?http://ant.apache.org/manual/Tasks/conditions.html

或谷歌搜索“ant if task”。

于 2012-05-18T11:31:01.303 回答