資源描述:
《Apache Ant 中文手冊》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、ApacheAnt中文手冊引言ApacheAnt是一個基于Java的編譯工具。它從功能上類似于make,但它以克服了make的缺點(diǎn)。為什么在make,gnumake,nmake,jam這些編譯工具后,還要產(chǎn)生一個Ant呢?因?yàn)檫@些編譯工具都有一定的限制。Ant的最初開發(fā)者在開發(fā)跨平臺的應(yīng)用時,發(fā)現(xiàn)以前的那些開發(fā)工具都有一定的限制。例如make工具,它是基于Shell的,它判斷一系列的條件,并像在shell下面那樣執(zhí)行編譯命令,這樣做的好處的:針對特定的平臺(如unix),可以容易的利用這些工具做編譯;但同時,這也意味著,你的編譯限制在固定的操作系統(tǒng)下,如只能用于unix。同時,Mak
2、e文件也有一些先天的缺陷。好多人都會遇到恐怖的tab問題。Ant的最初開發(fā)者多次說“我的命令不能執(zhí)行因?yàn)槲以趖ab前面加了一個空格!”。一些工具如Jam一定程序上解決了這個問題,但仍有其它的格式問題。Ant與從基于命令的那些擴(kuò)展開來的那些工具不同,Ant是由java類擴(kuò)展的。不用編寫shell命令,而是配置基于XML的文件,形成多個任務(wù)的目標(biāo)配置樹。每一個任務(wù)都是通過一個實(shí)現(xiàn)了一個規(guī)定接口的java類來運(yùn)行的。ant缺少了一些直接執(zhí)行shell命令的能力,如find.-namefoo-execrm{},但它給用戶提供了跨平臺的能力,可以在任何地方工作。實(shí)際上,Ant也提供了命令exe
3、cute用來執(zhí)行shell命令,這就是它的任務(wù),它允許執(zhí)行基于操作系統(tǒng)的命令。安裝Ant下載Ant。Ant有兩個版本,二進(jìn)制版本和原代碼版本。要編譯和使用Ant,你必須要有一個兼容JAXP的XML解析器。二進(jìn)制版本中自己帶有了最新的ApacheXerces2XML解析器。如果你想用不同的兼容JAXP的解析器,你可以移去Ant庫目錄下的xercesImpl.jar和xml-apis.jar兩個文件。你可以要用的解析器放到Ant的庫目錄下,也可以把jars文件放到系統(tǒng)的類路徑中。在Ant的當(dāng)前版本中,還需要安裝JDK。下面的二進(jìn)制片版本的安裝后的目錄結(jié)構(gòu)。ant安裝目錄ant
4、/bin包含了運(yùn)行腳本ant/libant運(yùn)行所需的類庫ant/docs文檔ant/etc一些配置,如何通過任務(wù)的xml輸出建立詳細(xì)的報告,移動編譯后的文件,忽略錯誤警告在運(yùn)行前還要做一些設(shè)置:1)在path路徑中加入ant/bin目錄;2)設(shè)置ANT_HOME為安裝目錄;3)通常還要設(shè)置JAVA_HOME為JAVA的安裝路徑。例如下:setANT_HOME=c:antsetJAVA_HOME=c:jdk1.5.1setPATH=%PATH%;%ANT_HOME%bin使用Ant1寫一個簡單的編譯文件Ant的編譯文件是寫成XML格式的,每一個編譯文件包含一個project和至少
5、一個target。Targets包含了一些task元素。每一個task元素可以有一個id屬性(attribute)可以被其它的引用。2Projects一個projext可以有如下的屬性attribute:attribute說明是否必須name項(xiàng)目名稱Nodefault當(dāng)沒有target支持時,缺省使用的targetYes.basedir基目錄,其它的目錄都是相對于此.這個attribute可以被"basedir"property覆蓋。當(dāng)"basedir"property設(shè)置后,basedirattribute就不起作用了。如果兩者都沒有設(shè)置,則buildfile本身的父目錄作為基目錄
6、。No根據(jù)需要,還可以設(shè)定項(xiàng)目的說明,在元素中。第一個project可以有一個或多個targets。一個target就是一系列的你要執(zhí)行的任務(wù)組。在運(yùn)行Ant時,你可以選擇哪一個任務(wù)組被執(zhí)行。如果沒有給出執(zhí)行的任務(wù)組,則project缺省的任務(wù)組被執(zhí)行。3Targetstarget可能依賴于其它的target而存在。你可能用一個target用來編譯,用另一個target且用來布署。只有編譯完成后,布署才可執(zhí)行,這樣布署就依賴于編譯。要說明的是,ant的dependsattribute只是規(guī)定了target之間的前后執(zhí)行關(guān)系,并不表示真正的依賴性。依賴的次序是
7、按照排列次序從左到右。但如果這些依賴本身之間還有依賴關(guān)系,也可能在后面的先執(zhí)行,如下面的例子:如果我們要運(yùn)行targetD。從它的依賴attribute列表上看,可能先執(zhí)行C,然后B,再后是A。其實(shí)這是不對的。C依賴于B,B依賴于A。因此是A先執(zhí)行,