天天看點

用Ant建構腳本(3)

版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/1494374

 用Ant建構腳本(3)

三、Ant的資料元素和資料類型

Ant的資料類型定義包括三個級别:project-level、target-level和task-level。這裡代表了其在Ant中的可視性,如直接定義在project下的project-level,所有的target和task都可以引用它們。

資料元素分為兩個部分:

1)特性property;

2)資料類型DataType。

Ant的DataType用于表示一套複雜的資料集,資料類型的定義通常和target平級,即資料類型一般直接在<project>夏衣層定義,當然也有一些直接定義在task中。

Ant的資料類型如下:

(1)環境變量environment:傳遞到buildfile的環境變量;

(2)參數argument:從指令行傳遞到buildfile的參數;

(3)檔案清單filelist:檔案不一定存在;

(4)檔案集fileset:檔案必須存在;

(5)模式集patternset;

(6)過濾集filterset;

(7)路徑path;

(8)映射mapper:定義了輸入與輸出檔案之間的一套複雜的關系。

四、Ant的核心任務與自定義任務

1、Ant的核心任務:指的是Ant内置的任務,不需要使用第三方包就可以直接使用的任務。

Ant還支援一些可選task,一個可選task一般需要額外的庫才能工作。

2、<copy>将檔案或者檔案集複制到一個新的檔案或者目錄,必須指定其todir的屬性值。<copy>支援的常用屬性如下:

(1)file:要複制的檔案;

(2)tofile:複制到新的檔案的檔案名;

(3)todir:複制到新的目錄的目錄名;

(4)overwrite:是否覆寫目标檔案,預設值為false,即隻有當被複制的檔案比目标檔案新時才複制;如要強制覆寫目标檔案,需要将overwrite設定為true。

3、<delete>删除單個或多個檔案、單個或多個目錄。通常在清除build産生的臨時檔案和臨時目錄時會用到<delete>,一般build檔案中都會有一個名教clean的target。

<delete>支援的常用屬性如下:

(1)file:指定要删除的檔案;

(2)dir:指定要删除的目錄;

(3)includeemptydirs:當使用檔案集fileset時,是否删除空的檔案夾,預設為false。

4、<mkdir>建立目錄,并且非空的父目錄也會被建立。其最常見的屬性是

dir:指定要建立的目錄,該屬性不能省略。

5、<javac>編譯器的選擇,預設為JDK。

6、<java>執行java程式;

7、<jar>将一些檔案集打包成JAR的格式。

8、Ant自定義任務

(1)編寫<taskdef>标簽,在能夠調用自定義的任務之前,需要給它指定一個名稱來定義它,并告訴Ant關于實作這個任務的類檔案的資訊,以及定位該類檔案所必須的任何classpath設定。這是使用taskdef任務來完成的。如下:

<taskdef name="filesorter" classname="FileSorter" classpath="classes"/>

(2)然後就可以象使用Ant核心任務一樣使用這個自定義的任務了。