转载自
ant 条件判断 condition
最近收到一个ticket,用ant写个build.xml,用到condition,作笔记如下:
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>
分享到:
相关推荐
总结来说,Ant Contrib If Jar包是Ant构建过程中的一个强大工具,它通过提供条件判断能力,使得构建脚本更加灵活和适应各种场景,提高了开发者的工作效率。如果你经常处理复杂构建流程,这个库无疑是一个值得添加到...
例如,`<foreach>`任务可以用来遍历集合,`<if>`和`<unless>`条件则允许在构建过程中进行条件判断。这些功能极大地增强了Ant的灵活性和可读性,使得构建脚本能更好地适应复杂的构建逻辑。 "README.txt"文件通常是...
这对于自动化构建过程中的条件判断和循环操作非常有用。 在Ant的官方网站上,你可以找到最新版本的Ant以及Ant-contrib的下载链接。下载后,你需要将Ant-contrib的jar文件添加到Ant的类路径中,这样在执行Ant脚本时...
4. **交互与控制流**:JavaScript提供了丰富的控制流语句,如`if...else`、`for`循环等,这使得Ant脚本能够根据项目需求进行条件判断和迭代操作。 5. **错误处理**:JavaScript中的异常处理机制也能在Ant脚本中使用...
1. **条件语句和循环**:通过`if`、`unless`属性,可以在构建脚本中添加条件判断逻辑。而`foreach`任务则提供了循环遍历列表的能力。 2. **文件列表和路径操作**:`fileset`和`path`元素用于处理文件列表和路径,...
`if`和`unless`属性用于条件判断,决定目标是否执行,`description`属性用于添加目标的描述。 3. `property`元素用来定义和设置属性值,可以在构建文件内部定义,也可以通过外部文件如`build.properties`引入。属性...
除了`for`宏,`ant-contrib`还提供了其他有用的宏,如`foreach`、`if`、`unless`等,它们分别对应于迭代、条件判断等功能,使得Ant脚本可以处理更复杂的逻辑。 "使用说明.txt"文件则详细介绍了如何将`ant-contrib`...
这些任务使得Ant脚本可以进行循环操作、条件判断等更复杂的逻辑控制,极大地增强了Ant脚本的表达能力。 "ant-contrib"目录下的"antlib.xml"文件是Ant Contrib的核心资源,它通过Ant的类加载机制被引入到构建环境中...
4. **条件语句和循环**:Ant支持条件判断(if/else)和循环结构,使构建过程更加灵活。 5. **依赖关系**:如何定义任务间的依赖关系,确保构建顺序的正确性。 6. **自定义任务**:Ant允许开发者编写自定义任务,以...
6. **条件与循环**:ANT的<if>和标签允许在构建脚本中添加条件判断和循环逻辑,使脚本更灵活。 7. **构建过程的定制化**:ANT的XML配置文件是其灵魂,可以根据项目需求自定义构建流程,实现高度定制化的自动化测试...
4. **使用条件语句**:Ant-contrib库提供了类似if的条件标签,用于在不同渠道间切换打包参数。例如,`<if>`和`<else>`可以用来根据条件选择不同的keystore文件。 5. **处理签名**:为每个渠道准备对应的keystore文件...
4. **条件语句和循环**:Ant提供了`if`、`unless`、`for`等元素,允许在构建脚本中添加条件判断和循环控制,增强了脚本的灵活性。 5. **插件机制**:Ant支持丰富的插件系统,通过添加外部库或第三方插件,可以扩展...
1. **条件判断**:Ant提供了一系列条件任务,如`if`、`unless`,可以基于特定条件执行任务。 2. **依赖管理**:通过`<classpath>`元素可以管理类路径,包括外部库的引用。 3. **文件集(Filesets)**:用于指定一组...
- **条件判断**:使用`<condition>`标签结合`<if>`和`<unless>`标签可以实现条件执行任务。 - **循环结构**:通过`<foreach>`标签可以对一组文件或目录执行相同的操作。 - **扩展任务**:除了内置的任务之外,还可以...
这个库为Ant提供了许多额外的任务和条件,使得Ant脚本能够执行更复杂的操作,如循环、判断等。 `ant-contrib-1.0b3.jar`是Ant Contrib项目的一个版本,它包含了一系列自定义的任务和标签,用于增强Ant的灵活性。...
4. **条件语句与循环**:学习如何在Ant中使用`if`、`unless`、`for`等元素进行条件判断和循环操作,使得构建脚本更加灵活。 5. **类路径管理**:理解如何设置和管理类路径(classpath),确保构建过程中能正确找到...
7. **条件与选择**:通过`<if>`和`<condition>`等标签实现条件判断,根据不同的情况执行不同的任务。 8. **脚本支持**:Ant支持使用Java、JavaScript、Groovy等脚本语言编写复杂逻辑。 9. **外部工具集成**:如通过`...
- **条件语句与选择器**: Ant提供`<if>`、`<unless>`等标签实现条件判断,`<available>`检查文件或目录是否存在。 3. **Java工程的构建过程** - **清理(Clean)**: 清理上次构建产生的临时和目标文件,常用`...
例如,它提供了for循环、if/else条件判断、property函数等,这些都是Ant原生不支持的特性。这些增强使得Ant脚本更接近于编程语言,可以处理更复杂的构建逻辑。 在"ant-contrib-1.0.jar.zip"中,最重要的文件是"ant-...
在实际使用中,你可能会遇到依赖管理、条件判断、属性设置等复杂情况,Ant都提供了相应的解决方案。例如,`classpath`元素可以管理项目依赖的库,`if`和`unless`属性可以实现条件控制,`property`元素则用于设置和...