用Ant構建指令碼(1)

chszs發表於2007-01-26
版權宣告:本文為博主chszs的原創文章,未經博主允許不得轉載。 https://blog.csdn.net/chszs/article/details/1494367

 用Ant構建指令碼(1)

首先宣告,本文基於Apache Ant官方網站http://ant.apache.org/manual/的《Apache Ant 1.7.0Beta2 Manual》翻譯而得。
一、Apache Ant簡介
1、Ant是Java開源組織Apache的一個專案,是一個基於Java的build工具。其構建指令碼有4個不同的實現:
(1)Sun Microsystems公司的參考實現;
(2)SolarMetric的Kodo實現;
(3)Libelis的Lido實現;
(4)SignSoft的IntelliBO實現。
其實只要實現提供Ant可以使用的命令列工具,就可以實現增加新的指令碼。
Ant可以通過其指令碼語言,自動將專案檔案複製到某個目錄、開發專案,或者生成一些程式碼、執行SQL語言。總之,Ant可以幫助程式設計師完成專案開發中除了開發程式碼以外的大部分輔助性的工作。很多IDE工具能自動生成指令碼,但總有些缺點,如不能完成使用者的自定義的要求。
2、Ant的優點:
(1)語法簡單易學,指令碼使用XML格式編寫;
(2)易於使用,構建過程自動化;
(3)跨平臺,Java類路徑和目錄結構都是以可移植的方式進行處理;
(4)速度快,像編譯和打包這樣的Java常規工作都可以在Ant的JVM中進行,節省了啟動其他JVM所耗費的時間;
(5)整合JUnit,適合進行XP開發模式所提倡的單元測試;
(6)易於使用Java進行功能擴充套件;
(7)支援J2EE部署;
(8)善於Java專案的部署工作;
(9)已經成為大多數開源專案的標準構建工具;
(10)由於Ant支援測試和部署,因此可以用於“編譯-測試-部署”的過程。
3、Ant的安裝:兩種方式:
(1)用已編譯好的binary檔案安裝Ant;
(2)用原始碼自己編譯Ant。
要想自己編譯Ant,需將一個JAXP相容的XML解析器(parser)放在CLASSPATH環境變數中。binary形式的Ant包括最新版的Apache Crimson XML解析器。如想使用其他的JAXP相容的解析器,需要從Ant的lib目錄中刪掉jaxp.jar以及crimson.jar,然後將自己的解析器的JAR檔案放到Ant的lib目錄中或放在CLASSPATH環境變數中。
安裝有三個步驟:
(1)將下載的binary壓縮包解壓到所需目錄;
(2)將bin目錄加入path環境變數;
(3)設定ANT_HOME環境變數,指向Ant目錄;
(4)設定JDK的環境變數。
在windows下的安裝非常簡單,所以本文以在UNIX下安裝Ant為例,假定安裝在/usr/local/ant目錄下,設定環境變數如下:
export ANT_HOME=/usr/local/ant
export JAVA_HOME=/usr/local/jdk-1.5.0
export PATH=${PATH}:${ANT_HOME}/bin

4、Ant命令列使用方法:
ant [options] [target1[target2[target3…]]]
其中,options引數和意義:
-help:顯示描述antml及其選項的幫助資訊;
-projecthelp:顯示包含在構建檔案種的、所有使用者編寫的構建文件,也即各個<target>中description屬性的文字,以及包含在<description>元素中的任何文字;
-version:顯示Ant及其版本資訊,然後退出;
-quiet:阻止不是由構建檔案中的echo任務所產生的大多數資訊;
-verbose:顯示構建過程中每個操作的詳細資訊,此選項與debug選項只能二選其一;
-debug:顯示Ant和任務釋出人員已經標誌為除錯資訊的資訊;
-emacs:對日誌訊息進行格式化;
-logfile:將日誌輸出重定向到指定的檔案;
-logger:指定一個類來處理Ant的日誌記錄,所指定的類必須實現org.apache.tools.ant.BuildLogger介面;
-listener:為Ant宣告一個監聽器,並增加到其監聽者列表中;
-buildfile:指定Ant需要處理的構建檔案,預設的檔案為build.xml;
-find:指定Ant需要處理的構建檔案,如果找不到,則到父目錄中去搜尋,直到系統根目錄為止。
5、預設的專案目錄
常用的專案目錄:
bin:公共的二進位制檔案,以及執行指令碼;
build:臨時建立的檔案,如類檔案等;
dist:目標輸出檔案,如生成jar檔案等;
doc/javadocs:文件;
lib:需要匯出的java包;
src:原始檔。
6、構建檔案
Ant的build檔案包含一個根節點project,每個project定義了至少一個或多個target,每個target又是一系列task的集合。
每個task是一段可被執行的程式碼,學習Ant的過程其實就是掌握這大量的task。


相關文章