1、下载:
http://ant.apache.org/bindownload.cgi
2、安装
解压至磁盘任意路径下,并在系统的环境变量配置。
1、 创建build.xml,内容如下:
<?xml version="1.0"?> <project name="helloWorld"> <target name="sayHelloWorld"> <echo message="Hello,hqq"/> </target> </project> |
2、 执行
说明:ant命令默认寻找build.xml文件,若文件名是hello.xml时,需要执行ant –buildfile hello.xml sayHelloWorld(或ant –file hello.xml sayHelloWorld 或ant –f hello.xml sayHelloWorld).
另外,ant还可以以debug的方式运行,debug方式会打印一些ant的相关信息,见下图:
Project元素是Ant构件文件的根元素,ant构件文件至少应该包含一个project元素,否则会发生错误,在每个project元素下,可包含多个target元素。Project元素的各属性:
Name:
用于指定project元素的名称
Default:
用于指定project默认执行时所执行的target的名称。
Basedir:
用于指定基路径的位置,该属性没有指定时,使用ant的构件文件父目录作为基准目录。
<?xml version="1.0"?> <project name="projectStudy" default="sayBaseDir" ><!-- basedir="D:\Program Files" --> <target name="sayBaseDir"> <echo message="the base dir is: ${basedir}"/> </target> </project> |
基于上述build.xml配置文件,在命令行窗口直接运行ant,则会执行target:sayBaseDir,见下图:
在看下面配置文件:
<?xml version="1.0"?> <project name="projectStudy" default="sayBaseDir" basedir="D:\Program Files"> <target name="sayBaseDir"> <echo message="the base dir is: ${basedir}"/> </target> </project> |
再次执行ant命令,效果见下图:
查看build文件中包含有哪些target:
Target是ant的基本执行单元它可以包含一个或多个具体的任务,多个target可以存在相互依赖,他有如下属性:
1、 Name
它指定target元素的名称,这个属性在一个project元素中是唯一的,我们可以通过指定target元素的名称来指定某个targrt。
2、 Depends
用于描述target之间的依赖关系,若与多个target存在依赖关系时,需要以“,”间隔。Ant会依照depends属性中target出现顺序依次执行每个target,被依赖的target会先执行。
3、 If
用于验证指定的属性是否存在,若不存在,所在target将不会执行。
4、 Unless
该属性的功能与if属性功能正好相反,她也用于验证指定的属性是否存在,若不存在,所在target将会被执行。
5、 Description
该属性是关于target功能的简短描述和说明。
下面是各属性综合使用的例子:
<?xml version="1.0"?> <project name="targetStudy">
<target name="targetA" if="ant.java.version"> <echo message="Java Version: ${ant.java.version}"/> </target>
<target name="targetB" depends="targetA" unless="amigo"> <description> a depend example! </description> <echo message="the base dir is: ${basedir}"/> </target>
</project> |
运行targetB
读者分析结果后可以看到,我们运行的是名为 targetB 的 target ,因该 target 依赖于 targetA ,所以 targetA 将首先被执行,同时因为系统安装了 java 环境,所以 ant.java.version 属性存在,执行了 targetA 这个 target ,输出信息: [echo] Java Version: 1.5 , targetA 执行完毕后,接着执行 targetB ,因为 amigo 不存在,而 unless 属性是在不存在时进入所在的 target 的,由此可知 targetB 得以执行。
该元素可看作参量或者参数的定义, project 的属性可以通过 property 元素来设定,也可在 Ant 之外设定。若要在外部引入某文件,例如 build.properties 文件,可以通过如下内容将其引入: <property file=” build.properties”/>
property 元素可用作 task 的属性值。在 task 中是通过将属性名放在“ ${ ”和“ } ”之间,并放在 task 属性值的位置来实现的。
Ant 提供了一些内置的属性,它能得到的系统属性的列表与 Java 文档中 System.getPropertis() 方法得到的属性一致,这些系统属性可参考 sun 网站的说明。
同时, Ant 还提供了一些它自己的内置属性,如下:
basedir : project 基目录的绝对路径,该属性在讲解 project 元素时有详细说明,不再赘述;
ant.file : buildfile 的绝对路径,如上面的各例子中, ant.file 的值为 E:"build.xml ;
ant.version : Ant 的版本,在本文中,值为 1.7.0 ;
ant.project.name :当前指定的 project 的名字,即前文说到的 project 的 name 属性的值;
ant.java.version : Ant 检测到的 JDK 的版本,在上例运行结果中可看到为 1.5 。
下面让读者来看一个 property 元素使用的简单例子。内容如下:
<?xml version="1.0"?> <project name="propertyStudy" default="example"> <property name="name" value="hqq"/> <property name="age" value="25"/>
<target name="example"> <echo message="name:${name},age:${age}"/> <echo message="basedir :${basedir}"/> <echo message="ant.file :${ant.file}"/> <echo message="ant.version :${ant.version}"/> <echo message="ant.project.name :${ant.project.name}"/> <echo message="ant.java.version :${ant.java.version}"/> </target>
</project>
|
执行结果:
在 Ant 工具中每一个任务封装了具体要执行的功能,是 Ant 工具的基本执行单位。在本小节中,主要引导读者来看下 Ant 的常用任务及其使用举例。
1. copy 任务
该任务主要用来对文件和目录的复制功能。举例如下:
Eg1. 复制单个文件: <copy file="file.txt" tofile="copy.txt"/>
Eg2. 对文件目录进行复制:
<copy todir="../newdir/dest_dir">
<fileset dir="src_dir"/>
</copy>
Eg3. 将文件复制到另外的目录:
<copy file="file.txt" todir="../other/dir"/>
2. delete 任务
对文件或目录进行删除,举例如下:
Eg1. 删除某个文件: <delete file="photo/amigo.jpg"/>
Eg2. 删除某个目录: <delete dir="photo"/>
Eg3. 删除所有的备份目录或空目录:
<delete includeEmptyDirs="true">
<fileset dir="." includes="**/*.bak"/>
</delete>
3. mkdir 任务
创建目录。 eg : <mkdir dir="build"/>
4. move 任务
移动文件或目录,举例如下:
Eg1. 移动单个文件: <move file="fromfile" tofile=”tofile”/>
Eg2. 移动单个文件到另一个目录: <move file="fromfile" todir=”movedir”/>
Eg3. 移动某个目录到另一个目录:
<move todir="newdir">
<fileset dir="olddir"/>
</move>
5. echo 任务
该任务的作用是根据日志或监控器的级别输出信息。它包括 message 、 file 、 append 和 level 四个属性,举例如下:
<echo message="Hello,Amigo" file="logs/system.log" append="true">
在windows—preferences—ant—runtime中设置:
或者在运行时设置:
D:\Program Files\eclipse\plugins\org.apache.ant_1.7.0.v200803061910\lib\ant-junit.jar
其中junit-frames.xls是针对包含有框架的测试报告对应的样式表。
Junit-noframes.xls是针对不包含框架的测试报告对应的样式表。
汉化时,需要首先将相应xls文件的encoding更改为“GBK”.
1、 在机器的环境变量中配置好ant的bin路径
2、 编写bat脚本,在脚本中调用ant。
3、 执行批处理文件
4、 生成报告