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、  生成報告




 
 

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