用ant写个build.xml,用到condition,作笔记如下:
basic elements: istrue isfalse not and or xor available isset equals filesmatch
1、istrue isfalse:断言 真 假
2、逻辑运算
2.1、not 逻辑非
2.2、and 逻辑与
2.3、or 逻辑或 xor异或 (语法上与and类似)
3、available 是否可用
4、isset 指定属性是否存在
5、equals 是否相等
6、filesmatch 比较文件
basic elements: istrue isfalse not and or xor available isset equals filesmatch
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>