1、下載:
http://ant.apache.org/bindownload.cgi
2、安裝
解壓至磁盤任意路徑下,並在系統的環境變量配置。
3、安裝測試
4、HelloWorld
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,則會執行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:
6、關鍵元素-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 得以執行。
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>
|
執行結果:
8、ant的常用任務
在 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">
9、ant+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”.
11、bat+ant
1、 在機器的環境變量中配置好ant的bin路徑
2、 編寫bat腳本,在腳本中調用ant。
3、 執行批處理文件
4、 生成報告