“Apache Ant是一個基于Java 的生成工具。據(jù)最初的創(chuàng)始人James Duncan Davidson 介紹,,這個工具的名稱是 another neat tool(另一個整潔的工具)的首字母縮寫,。”
在初步使用過程中,對于Ant的作用,,我覺得主要即輔助Java的編譯,,例如定義編譯之前的準備工作、項目之間的依賴關(guān)系等等,?!?/span>.NET中的項目文件(.csproj)。
1.下載Ant,,(http://ant./bindownload.cgi)
2.安裝Ant 將下載的包apache-ant-1.8.0-bin.zip解壓,,放在適當?shù)奈恢茫绫纠胖糜冢?/span>C:\apache-ant-1.8.0
為方便使用,還需設(shè)置OS環(huán)境變量,,進入computer/properties/environment variables/user variables,, 添加一個用戶變量: ANT_HOME=C:\apache-ant-1.8.0 修改用戶變量 PATH,添加 %ANT_HOME%\bin
3.測試Ant安裝 打開命令行,,輸入ant,,如果能見到類似如下信息,證明Ant配置成功: Buildfile: build.xml does not exist! Build failed
4.新建測試項目 在Eclipse中新建項目“HelloAntWorld”,,代碼如下:
代碼
在根目錄添加Ant的build.xml文件,,內(nèi)容如下:
代碼
學習build.xml的文件最簡單的方法是照貓畫虎,從其它的項目中拿到build.xml,,然后根據(jù)自己的需要增加或者簡化,。對build.xml來說,最核心的是定義任務(wù)即target,,這里定義的每個target,,將來可以在命令行調(diào)用Ant時使用,如“Ant clean”即執(zhí)行上面定義的“clean”,,實際即刪除classes目錄下的所有文件,,以此類推。
5.使用Ant編譯Java項目 Eclipse對Ant集成很好,,真正開發(fā)時也可以借由Eclipse來調(diào)用Ant進行項目編譯,,只要做相應的設(shè)置即可。這里仍以命令行為例:
C:\DEV\HelloAntWorld>ant all 以下為命令輸出,??梢钥吹秸{(diào)用的是build.xml中定義的target “all”,由于它的依賴(depends)中包括“init”,“compile”,“jar”,,所以在命令輸出中這三個依賴項依次執(zhí)行完,,最后執(zhí)行“all”: Buildfile: C:\DEV\HelloAntWorld\build.xml init: compile: [javac] C:\DEV\HelloAntWorld\build.xml:24: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable buil ds [javac] Compiling 1 source file to C:\DEV\HelloAntWorld\classes jar: [jar] Building jar: C:\DEV\HelloAntWorld\lib\HelloAntWorld.jar all: BUILD SUCCESSFUL Total time: 1 second
C:\DEV\HelloAntWorld>cd lib C:\DEV\HelloAntWorld\lib>java -jar HelloAntWorld.jar
6.其它 有時候我們會從其它地方拷貝Java項目,如果這些項目未使用Ant,,那么我們常常要新建項目然后導入,,然后才能使用,。如果使用了Ant,,我們可以在Eclipse中選擇File/New/Project../Java/Java project from existing Ant buildfile,然后選擇相應的build.xml文件即可導入項目(有點像在.NET中使用項目文件.csproj,,只不過.NET中更加簡單),。
多提一句,,實際由build.xml自動導入項目是依賴于build.xml中“javac”項中的“srcdir”,所以如果build.xml中沒有任何target中包含“javac”項目(當然絕大多數(shù)情況下肯定會有),,而你選擇由build.xml導入項目,,則會報錯,。
這是一個入門簡例,,關(guān)于Ant更加詳細的內(nèi)容,,參見文件:Apache Ant Go Through.pdf |
|