1998年,有一位程序員改變了整個(gè)Java世界。James Duncan Davidson在試圖使用當(dāng)時(shí)的構(gòu)建工具(GNU Make、批處理文件和shell腳本)來(lái)創(chuàng)建一個(gè)跨平臺(tái)的Tomcat構(gòu)建時(shí),做了多種努力均不能成功。因此,他在從歐洲飛回美國(guó)的途中設(shè)計(jì)出了自己的構(gòu)建實(shí)用工具,并為之命名為Ant,因?yàn)檫@是一個(gè)小東西,但卻能做大事。James為了解決自己的問(wèn)題(即創(chuàng)建一個(gè)跨平臺(tái)的構(gòu)建)而提出的這種快速而簡(jiǎn)單的解決方案已經(jīng)演變成Java環(huán)境中應(yīng)用最為廣泛的構(gòu)建管理工具。
如果你在用Java進(jìn)行開(kāi)發(fā),而沒(méi)有使用Ant,那么確實(shí)應(yīng)該擁有這本不算厚的書(shū)。Ant是一個(gè)可靠的、跨平臺(tái)的構(gòu)建工具,它可以充分利用Java環(huán)境的優(yōu)勢(shì)。Ant本身也是用Java編寫(xiě)的,它可在多個(gè)平臺(tái)(如Unix、Linux以及Windows等等)上工作,因此如果你要轉(zhuǎn)換開(kāi)發(fā)平臺(tái),那么學(xué)習(xí) Ant是值得的。Ant很容易擴(kuò)展。在你的工程中,目前是否存在某個(gè)需求,而所有Ant功能對(duì)此都不能予以滿足呢?沒(méi)有問(wèn)題!你完全可以像James一樣,編寫(xiě)自己的Ant任務(wù)。沒(méi)準(zhǔn)兒你也能改變這個(gè)世界呢!
以下是使用Ant可以完成的一些工作:
* 定義構(gòu)建塊、它們必須產(chǎn)生的結(jié)果以及它們之間的依賴關(guān)系
* 自動(dòng)地由諸如CVS等源代碼控制系統(tǒng)獲取源代碼
* 不僅可令A(yù)nt以適當(dāng)?shù)捻樞蚓幾g必要的源文件,而且還可生成部署所必需的JAR文件,由此完成應(yīng)用的構(gòu)建
* 僅需由一個(gè)構(gòu)建文件(或一組構(gòu)建文件)即可完成以上所有工作,而構(gòu)建文件在Ant支持的所有平臺(tái)上都會(huì)有同樣的表現(xiàn)
要進(jìn)行eXtreme(極限)編程嗎?Ant就是一個(gè)必備工具,利用它可以方便地完成頻繁的構(gòu)建,以此又將有利于使用JUnit和相關(guān)技術(shù)進(jìn)行測(cè)試驅(qū)動(dòng)的開(kāi)發(fā)。
Ant構(gòu)建文件是用XML編寫(xiě)的,這是一種良構(gòu)標(biāo)準(zhǔn),因此可以確保使用Ant并不需要學(xué)習(xí)另一種腳本語(yǔ)言。Ant是一個(gè)開(kāi)源工程,這是Apache軟件基金會(huì)所投資的Jakarta工程的一部分。
“Jesse和Eric可以教你如何使用當(dāng)前的Ant,他們做得相當(dāng)棒。這本書(shū)提供了頗有深度的信息,對(duì)于一些以往從未考慮到的工作,書(shū)中還介紹了如何擴(kuò)展Ant來(lái)完成這些工作的詳細(xì)內(nèi)容。不論你是偶爾使用Ant,還是需要管理各種大型工程,這都是一本需要持之在手的工具書(shū)。”
—James Duncan Davidson,Ant的創(chuàng)造者