2012-05-18 58 views
0

我有它打印如果平臺是UNIX或windowsas碼小peice的如何在螞蟻中使用邏輯運算符?

<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> 

在這裏,我們可以看到我們不必要地檢查相同的消息前兩個條件,是有在螞蟻任何OR運算符就像我們在ç||,這樣我們就可以寫ARG1 =的linux-64 || Linux的86 ....如果有,請告訴我,我應該如何使用,這將節省了大量的時間在這裏

回答

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

if任務是ant-contrib一部分。它在覈心Ant中不可用。

各種conditions在芯螞蟻可用,並且可以被使用,例如,爲了使目標執行有條件的。

在1.8之前,如果/除非條件評估「是屬性集合?」

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

1.8,如果/除非條件可以評估 「是財產真/假」:

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