如何找出兩個數字屬性中哪一個最大?如何比較兩個屬性與數字值?
以下是如何檢查wheather兩者相等:
<condition property="isEqual">
<equals arg1="1" arg2="2"/>
</condition>
如何找出兩個數字屬性中哪一個最大?如何比較兩個屬性與數字值?
以下是如何檢查wheather兩者相等:
<condition property="isEqual">
<equals arg1="1" arg2="2"/>
</condition>
螞蟻script任務可以讓你實現腳本語言的任務。如果你安裝了JDK 1.6,Ant可以執行JavaScript而不需要任何附加的依賴庫。例如,這個JavaScript讀取Ant屬性值,然後將另一Ant屬性取決於條件:
<property name="version" value="2"/>
<target name="init">
<script language="javascript"><![CDATA[
var version = parseInt(project.getProperty('version'));
project.setProperty('isGreater', version > 1);
]]></script>
<echo message="${isGreater}"/>
</target>
不幸的是,螞蟻的內置condition task不具有IsGreaterThan
元素。但是,您可以使用Ant-Contrib項目中的IsGreaterThan
condition。另一種選擇是推出your own task以進行比較。我更喜歡前者,因爲它更容易,更快捷,並且您還可以從Ant-Contrib獲得其他useful tasks。
如果你不想(或不能)使用Ant-的Contrib庫,你可以定義compare
任務使用javascript:
<!-- returns the same results as Java's compareTo() method: -->
<!-- -1 if arg1 < arg2, 0 if arg1 = arg2, 1 if arg1 > arg2 -->
<scriptdef language="javascript" name="compare">
<attribute name="arg1" />
<attribute name="arg2" />
<attribute name="result" />
<![CDATA[
var val1 = parseInt(attributes.get("arg1"));
var val2 = parseInt(attributes.get("arg2"));
var result = (val1 > val2 ? 1 : (val1 < val2 ? -1 : 0));
project.setProperty(attributes.get("result"), result);
]]>
</scriptdef>
您可以使用它像這樣:
<property name="myproperty" value="20" />
...
<local name="compareResult" />
<compare arg1="${myproperty}" arg2="19" result="compareResult" />
<fail message="myproperty (${myproperty}) is greater than 19!">
<condition>
<equals arg1="${compareResult}" arg2="1" />
</condition>
</fail>
試圖目前使用這一點。 你有沒有用這個設置屬性的例子? 嘗試簡單地將布爾屬性設置爲isgreaterthan任務的結果,或者在if任務中使用 – 2011-12-01 12:31:33