如何在ant中使用逻辑运算符?

时间:2012-05-18 11:29:43

标签: ant

如果平台是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>

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

3 个答案:

答案 0 :(得分: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,它将起作用

答案 1 :(得分:1)

if任务是ant-contrib的一部分。它在核心Ant中不可用。

核心Ant中有各种conditions可用,例如,可以使目标执行成为条件。

在1.8之前,如果/除非条件评估“属性设置?”

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

从1.8开始,如果/除非条件可以评估“属性为真/假”:

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

答案 2 :(得分:-2)

为什么不看蚂蚁手册? http://ant.apache.org/manual/Tasks/conditions.html

或google for“ant if task”。