参考:http://www.blogjava.net/fingki/archive/2008/05/21/201919.html
1.<condition>任务在测试成功后才对特征进行设置,否则保留特征不设置。
大部分Ant测试可以根据<condition>任务进行分组,如过嵌套的条件测试为true,它将对一个已经命名的特征进行设置。使用逻辑运算符<and>,<or>, <xor>和<not>可以构成一个复杂的测试条件。例如
<?xml version="1.0"?> <project name="testCondition" > <target name="test"> <!--判断本机操作系统是不是windows,unix中之一,如果是,特征值设置为success--> <condition property="os" value="success" else="fail"><!--已经命名特征os--> <or><!--嵌套条件--> <os family="unix" /> <os family="windows" /> </or> </condition> <echo>sconditon=${os}</echo> </target> </project>
a)条件是否为true,决定了特征是否存在。Ant规定条件为true,特征会赋值为true。条件不成立,特征不存在。
<project name="testCondition"> <target name="test"> <!--如果条件为true,则设置特征值为true。否则特征不存在(而不是说不给scondtion赋值)--> <condition property="scondition"> <istrue value="true"/><!--条件--> </condition> <antcall target="isTrue"></antcall> </target> <target name="isTrue" if="scondition"><!--只要名为scondition的特征存在,那就执行isTrue--> <echo>is ture</echo> </target> </project>
b)由于特征scondtion根本不存在,所以不会执行目标test。而不是根据特征的值来决定目标是不是被执行。
<?xml version="1.0"?> <project name="testCondition"> <target name="test" if="scondition"> <echo message="scondition1=${scondition}" /> <echo>is ture</echo> </target> </project>
但是如果我们在命令行中设置了特征scondition(ant -Dscondition=false test),那么目标test就会被ant执行
2.测试127.0.0.1这台机器上的8080端口是否被应用程序占用。如果没被占用,输出错误提示信息。
<?xml version="1.0"?> <project name="testCondition" > <target name="test"> <property name="server.port" value="8080" /> <fail message="no server at ${server.port}" > <condition> <not> <socket port="${server.port}" server="127.0.0.1" /> </not> </condition> </fail> </target> </project>
3.按照ant手册,任务 <tstamp/>的作用就是Sets the DSTAMP, TSTAMP, and TODAY properties in the current project, based on the current date and time.然后,在build file的其他地方使用DSTAMP,TSTAMP,TODAY三个属性.当然,如果在build file的其他地方不使用DSTAMP,TSTAMP,TODAY这三个属性.那么<tstamp/>其实就相当于没有用了 。样例:
<project name="portal" basedir="."> <property name="lib.dir" value="lib" /> <tstamp/> <target name="init"> <echo message="${TODAY}" /> <echo message="${DSTAMP}" /> <echo message="${TSTAMP}" /> </target> </project>
将以上代码保存为:build.xml文件后执行,可以得到一下结果
也就是说:在你的Ant脚本中定义了<tstamp/>对象后,它便为我们定义了三个属性变量:DSTAMP,TSTAMP,TODAY
<tstamp/>任务允许任何数量的嵌套<format>元素,它们以给定的格式规范来定义特征。例如:你也可以像这样:
<?xml version="1.0" ?> <project name="portal" > <target name="init"> <tstamp> <format property="TODAY" pattern="yyyy-MM-dd" locale="cn" /> <format property="NOW" pattern="yyyy-MM-dd HH:mm:ss" locale="cn" /> </tstamp> <echo message="now=${NOW}, TODAY=${TODAY}"/> </target> </project>自己设定日期和时间的格式,以便你在Ant脚本文件中随时使用这些时间属性
相关推荐
4. **条件(Condition)**:Ant提供了条件语句,如`<if>`和`<available>`,可以根据不同环境的特性执行相应的任务。 5. **文件集(Fileset)**:文件集用于指定一组文件,常用于复制或编译操作。 6. **依赖关系...
- Ant与Eclipse/IntelliJ IDEA集成:在IDE中直接运行Ant脚本,提高开发效率。 这个压缩包中的文档涵盖了Ant的基础知识、教程、参考和最佳实践,对于想要深入学习Ant的人来说是一份全面的学习资料。通过阅读这些...
在Java开发中,Ant被广泛用于构建大型项目,确保代码的一致性和可重复性。本文将深入探讨Ant配置的相关知识点,以及如何利用Ant实现高效开发。 首先,我们来理解Ant的基本结构。一个Ant项目通常由一个名为`build....
此外,还有条件语句(condition),例如`available`检查文件或目录是否存在,`if`和`unless`用于根据条件决定是否执行某个任务。 4. **依赖关系**:Ant可以处理任务之间的依赖关系,确保任务按正确的顺序执行。如果...
- **if语句不支持condition**:确保已引入了ant-contrib库,并正确使用了条件标签。条件通常基于属性值进行判断,例如`<available file="path/to/file" property="file.exists" />`。 - **找不到keystore**:检查...
2. 条件(Condition):Ant提供了多种条件判断,如isset、available等,可以根据条件执行不同的任务。 六、Ant与版本控制系统集成 Ant可以与SVN、Git等版本控制系统集成,实现代码的版本管理操作,如checkout、...
标题中的“Ant自动构建总结”指的是Apache Ant,一个Java库和命令行工具,其目标是驱动构建过程。Ant使用XML来描述项目结构和构建过程,使得构建任务可以在不同的环境中重复执行,无需关心具体的操作系统或开发工具...
- 在系统环境变量中添加`ANT_HOME`,值为Ant的安装目录。 - 将`%ANT_HOME%\bin`添加到系统的`Path`环境变量中。 **2.2 测试安装** 打开命令行窗口,输入`ant -version`,如果正确安装了Ant,会显示Ant的版本号。...
ant执行 target 前先判断文件是否存在,只有文件存在才执行。
8. **条件(Condition)**:Ant提供了多种条件判断,如`available`检查文件或目录是否存在,`equals`比较两个字符串是否相等,这些条件可以用于控制构建流程的分支。 9. **宏定义(Macrodef)**:宏定义允许创建可...
7. **条件语句(Condition)**:Ant提供了一系列条件任务,如`available`检查文件或目录是否存在,`equals`比较两个字符串是否相等,`isset`检查属性是否已设置。这些条件可以用于控制构建流程的分支。 8. **脚本...
- **Ant贡献的任务**:许多第三方库提供了额外的任务,如Maven Ant Tasks用于Maven与Ant的集成。 - **Ant的Eclipse插件**:提供图形化界面,方便编辑和运行Ant构建。 9. **使用场景** - 自动构建Java项目 - ...
- **条件(Condition)**:Ant提供了一些条件检查,如`available`(检查文件或目录是否存在)、`equals`(比较两个值)等。 - **选择器(Selector)**:用于在文件或目录集合中选择特定的元素,如`filename`(按...
Thanks go out to SER[G]ANT for updating the russion translation files already June 23 2018:Cheat Engine 6.8.1 Released: Apparently 6.8 contained a couple of annoying bugs, so here's an update that ...