Ant 条件判断 condition

来源:互联网 发布:windows系统编程基础 编辑:程序博客网 时间:2024/05/13 11:53
 

1、istrue isfalse:断言 真 假

<project name="testCondition"> <target name="test">  <condition property="scondition">   <istrue value="true" />  </condition>  <antcall target="isTrue"></antcall>  <antcall target="isFalse"></antcall> </target> <target name="isTrue" if="scondition">  <echo>is ture</echo> </target> <target name="isFalse" unless="scondition">  <echo>is false</echo> </target></project>


 

2、逻辑运算
2.1、not 逻辑非

<project name="testCondition"> <target name="test">  <condition property="scondition">   <not>   <istrue value="true" />  </not>  </condition>  <antcall target="isTrue"></antcall>  <antcall target="isFalse"></antcall> </target> <target name="isTrue" if="scondition">  <echo>is ture</echo> </target> <target name="isFalse" unless="scondition">  <echo>is false</echo> </target></project>


2.2、and 逻辑与

<project name="testCondition"> <target name="test">  <condition property="scondition">   <and>   <istrue value="true" />   <istrue value="false" />  </and>  </condition>  <antcall target="isTrue"></antcall>  <antcall target="isFalse"></antcall> </target> <target name="isTrue" if="scondition">  <echo>is ture</echo> </target> <target name="isFalse" unless="scondition">  <echo>is false</echo> </target></project>


2.3、or 逻辑或 xor异或 (语法上与and类似)

3、available 是否可用

<project name="testCondition"> <path id="all.test.classes">  <pathelement location="bin" /> </path> <target name="test">  <condition property="scondition"> <!--在指定的classpath路径下是否存在资源 TestTest.class -->   <available resource="TestTest.class">    <classpath refid="all.test.classes" />   </available>  </condition>  <antcall target="isTrue"></antcall>  <antcall target="isFalse"></antcall> </target> <target name="isTrue" if="scondition">  <echo>is ture</echo> </target> <target name="isFalse" unless="scondition">  <echo>is false</echo> </target></project>


4、isset 指定属性是否存在

<project name="testCondition"> <!--属性也可以通过ant参数-D来设置 --> <property name="name" value="this is name" /> <target name="test">  <condition property="scondition"> <!--如果属性name不存在则返回false -->   <isset property="name" />  </condition>  <antcall target="isTrue"></antcall>  <antcall target="isFalse"></antcall> </target> <target name="isTrue" if="scondition">  <echo>is ture</echo> </target> <target name="isFalse" unless="scondition">  <echo>is false</echo> </target></project>


5、equals 是否相等

<project name="testCondition"> <!--属性也可以通过ant参数-D来设置 --> <property name="name" value="this is name" /> <target name="test">  <condition property="scondition"> <!--如果arg1的值与arg2的值相等返回true,否则为false -->   <equals arg1="${name}" arg2="this is name" />  </condition>  <antcall target="isTrue"></antcall>  <antcall target="isFalse"></antcall> </target> <target name="isTrue" if="scondition">  <echo>is ture</echo> </target> <target name="isFalse" unless="scondition">  <echo>is false</echo> </target></project>


6、filesmatch 比较文件

<project name="testCondition"> <target name="test">  <condition property="scondition"> <!--如果file1所代表的文件与file2所代表的文件相等返回true,否则为false -->   <filesmatch file1="testfile1.txt" file2="testfile2.txt" />  </condition>  <antcall target="isTrue"></antcall>  <antcall target="isFalse"></antcall> </target> <target name="isTrue" if="scondition">  <echo>is ture</echo> </target> <target name="isFalse" unless="scondition">  <echo>is false</echo> </target></project>