一、Ant簡介
Ant是java語言開發的工具,配置文件寫成xml,容易維護和書寫,結構簡單。
構建+部署包含的工作:
1、編譯代碼
2、封裝二進制文件
3、在測試服務器上部署二進制文件
4、測試改變
5、代碼拷貝並移動
Ant的特點:
Ant 是最完整的基於 Java 語言開發的構建和部署工具。
Ant 具有平台無關性,可以處理平台特有的屬性,諸如文件分隔符。
Ant 還可以用來執行平台特有的任務,比如使用 touch 命令修改一個文件的修改時間。
Ant 腳本是用 XML 來完成的。如果你已經對 XML 有所了解,那么你學習 Ant,將會比較得心應手。
Ant 擅長自動完成重復任務。
Ant 開始需要一系列的預先定義好的任務。
Ant 提供了開發自定義任務的接口。
Ant 可以很容易從命令行調用,並且它能夠很好地集成免費和商用的集成開發環境。
二、Ant構建文件
1、Ant的構建文件默認為build.xml,放在項目頂層目錄。但是不必須。
2、構建文件的項目元素 有 3 個屬性:
3、構建文件的目標元素的屬性
4、注意事項:
在 xml 文件的聲明前面沒有任何空行或者空格
三、Ant屬性
1、Ant使用屬性 (property) 元素來讓你能夠具體說明屬性,這就允許這些屬性能夠在不同的構建和不同的環境下發生改變。
預定義屬性
2、Ant屬性文件
當你只需要對小部分屬性進行設置時,可以選擇直接在構建文件中設置。然而,對於大項目,最好將設置屬性的信息存儲在一個獨立的文件中。
存儲屬性信息在一個獨立的文件中將會提供以下好處:
它可以讓您重復使用相同的構建文件,該文件在不同的執行環境中使用不同的屬性設置。例如,構建屬性文件在 DEV , TEST , 和 PROD 環境中可以獨立地被維護。
當你事先不知道屬性的值時(例如,在一個實際的環境中),這樣處理是有益的。這樣允許你在知道屬性值后,在其他環境中執行生成 (build) 操作。
一般情況下,屬性文件被命名 build.properties 與build.xml存放在同一目錄層。可以基於部署環境 ——比如: build.properties.dev 和 build.properties.test 創建多個 build.properties 文件。
3、Ant的內置屬性
四、Ant數據類型
1、文件集:文件集的數據類型代表了一個文件集合。它被當作一個過濾器,用來包括或移除匹配某種模式的文件。
2、模式集合:一個模式集合指的是一種模式,基於這種模式,能夠很容易地過濾文件或者文件夾。模式可以使用下述的元字符進行創建。
? -僅匹配一個字符
-匹配零個或者多個字符
-遞歸地匹配零個或者多個目錄
3、文件列表:文件列表數據類型與文件集相類似,除了以下幾處不同:
文件列表包含明確命名的文件的列表,同時其不支持通配符。
文件列表數據類型能夠被應用於現有的或者還不存在的文件中。
4、過濾器集合:使用一個過濾器集合數據類型與拷貝任務,你可以在所有文件中使用一個替換值來替換掉一些與模式相匹配的文本。
屬性 output.dir 指向項目的輸出文件夾。
屬性 releasenotes.dir 指向項目的發行說明文件夾。
屬性 current.version 指向項目的當前版本文件夾。
拷貝任務,顧名思義,是用來將文件從一個地址拷貝到另一個地址。
5、路徑:path 數據類型通常被用來表示一個類路徑。各個路徑之間用分號或者冒號隔開。然而,這些字符在運行時被替代為執行系統的路徑分隔符。
類路徑被設置為項目中 jar 文件和類文件的列表,
五、Ant編譯項目
1、構建項目的結構:
數據腳本存儲在 db 文件夾中。
java 源文件存儲在 src 文件夾中。
images (圖像),js (JavaScript 腳本),style (css 層疊樣式表)存儲在 war 文件夾中。
JSPs 文件存儲在 jsp 文件夾中。
第三方的 jar 文件存儲在 lib 文件夾中。
java 類文件存儲在 WEB-INF\classes 文件夾中。
2、示例解析
src.dir 表示這個項目的源文件目錄,也就是存儲 java 文件的地方。
web.dir 表示這個項目的 web 文件目錄,也就是存儲 JSPs 文件,web.xml,css,javascript 以及其它與 web 相關的文件的地方。
build.dir 表示該項目的輸出文件。
屬性也可應用其他屬性,在上面的例子中,build.dir 屬性引用了 web.dir 屬性。
控制類路徑 (master-classpath) 保存類路徑的相關信息。在這種情況下,它包含了構建文件夾和 jar 文件夾中的所有的類文件。
構建目標構建這些文件。首先,我們創建一個構建目錄,如果該目錄不存在,我們就執行 javac 命令(具體以 jdk 1.5 作為我們目標的編譯環境)。 我們對 javac 任務提供源文件夾和類路徑,並且通過執行 javac 任務將類文件存放在構建文件夾中。
六、Ant生成文檔
1、屬性:源包括源路徑,源路徑引用或者源文件三個屬性。
源路徑 (sourcepath) 指向源文件所在的文件夾,例如: src 文件夾。
源路徑引用 (sourcepathref) 指向由該路徑屬性引用的路徑,例如:delegates.src.dir 。
源文件 (sourcefiles) 在你想指定單獨的文件時使用,比如指定一個逗號分隔列表。
目標路徑是通過使用 destdir 文件夾來指定的。
2、為文檔創建組:
源文件夾中的實用工具類
用戶接口的類
數據庫相關的類
3、運行 javadoc Ant 任務。它將生成 java 文檔文件,並將這些文件放置於 doc 文件夾中。
七、Ant生成JAR文件
1、運用 jar 任務來生成 jar 包。jar任務中常用的屬性
2、舉例:
詳解:web.dir 屬性指出了 web 源文件的路徑。
利用來自 faxapp.util 包中的類文件創建了一個名為 util.jar 的 jar 包,除名字為 Test 的類文件。輸出的 jar 文件將會存放在 web 應用的配置文件 lib 中。
設置util.jar 成為可執行文件,只需在 Main-Class 元屬性中加入manifest。
為了執行 jar 任務,將它包裝在目標 target 中,最常見的情況是,將 jar 任務包裝在配置目標或者打包目標中(build 目標或 package 目標),並執行包裝后的目標。
八、Ant生成WAR文件
1、生成WAR文件與創建JAR文件任務類似。任務屬性:
2、要執行 war 任務,將其封裝在一個目標里面,最常見的是,構建目標或者是包目標,然后運行它們。