Ant入门学习资料

  1、下载:

http://ant.apache.org/bindownload.cgi

 

 


 

 2、安装

解压至磁盘任意路径下,并在系统的环境变量配置。



 

 

3、安装测试



 

4HelloWorld

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的相关信息,见下图:



 

5、关键元素-project

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,则会执行targetsayBaseDir,见下图:



 

 

在看下面配置文件:

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



 

 

6、关键元素-target

Targetant的基本执行单元它可以包含一个或多个具体的任务,多个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 得以执行。

7、关键元素-property

该元素可看作参量或者参数的定义, 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>

 

 

执行结果:



 

 

8ant的常用任务

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

 

9ant+junit+eclipse配置

windows—preferences—ant—runtime中设置:



 

 

或者在运行时设置:

 



 

 

 

 

10、测试报告汉化

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.

11bat+ant

1、  在机器的环境变量中配置好antbin路径




 
 

2、  编写bat脚本,在脚本中调用ant




 
 

3、  执行批处理文件




 
 

4、  生成报告




 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章