ant——condition

ant condition的常用用法


basic elements: istrue isfalse not and or xor available isset equals  filesmatch


1. isset指定属性是否存在

<property file="${basedir}/javaConfig/user.properties"/>

		<condition property="fppcondition">
			<isset property="FPP"/>
		</condition>
		<antcall target="isFPPTrue"></antcall> 
		<antcall target="isFPPFalse"></antcall>

<target name="isFPPTrue" if="fppcondition"> 
        <echo>FPP is ture</echo>
    </target>
	
	<target name="isFPPFalse" unless="fppcondition">
		<echo>FPP is false</echo>
	</target>

又如:

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

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

3. 逻辑运算

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

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

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


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

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>







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值