2つの数値プロパティのどちらが最も優れているかは、どのようにして知ることができますか?2つのプロパティを数値で比較するにはどうすればよいですか?
は、ここでは、2つが等しいwheatherをチェックする方法は次のとおりです。残念ながら
<condition property="isEqual">
<equals arg1="1" arg2="2"/>
</condition>
2つの数値プロパティのどちらが最も優れているかは、どのようにして知ることができますか?2つのプロパティを数値で比較するにはどうすればよいですか?
は、ここでは、2つが等しいwheatherをチェックする方法は次のとおりです。残念ながら
<condition property="isEqual">
<equals arg1="1" arg2="2"/>
</condition>
Ant 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>
、AntのIsGreaterThan
要素を持っていませんcondition taskに建てられました。ただし、Ant-Contribプロジェクトで利用可能なIsGreaterThan
conditionを使用できます。もう1つの選択肢は、比較のためにyour own taskを公開することです。私は前者が好きです。なぜなら、それはより簡単で速く、またuseful tasksのホストをAnt-Contribから得ることができるからです。
は、あなたがしたい(またはできない)していない場合のAnt-Contribのライブラリを使用して、あなたが定義することができますJavaScriptを使用してcompare
タスク:
<!-- 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>
現在、これを使用しようとしています。 これでプロパティを設定する例がありますか? booleanプロパティをisgreaterthanタスクの結果に設定するか、ifタスクで使用するだけです –