因爲使用java,javac,jar等工具進行編譯打包,即繁瑣低效又容易出錯,所以Ant出現了。html
Ant的出現就是專門爲了打包編譯java代碼的,使用以前得稍微學一下。Ant的運行起來主要是依靠配置文件(XML格式),一般命名爲build.xml。java
使用ant以前固然先裝好Java的JDK,JRE,該設的環境變量都弄好。oracle
而後在cmd窗口中輸入ant.bat。若是設置好ant_home的話,不須要絕對路徑的。本人偷懶,沒設,但照樣能夠用。eclipse
輸入ant.bat -version,查看版本號。ide
若是正確顯示,說明安裝沒有問題了。工具
接下來的主要任務,實際上是如何編輯build.xml,由於ant所作的動做都是按照build.xml中規定的來執行的。能夠從ant官網下載幫助文檔。ui
幫助文檔很詳細,此處只是快速上手,所以簡單講解一下。spa
build.xml中的節點不少,可是如下幾個節點比較重要,理解這些節點是頗有必要的。操作系統
project,target,property,task,build-in property等.code
project是項目的意思,它是Ant中build.xml文件的根節點, 配置文件至少應該包含一個project,不然會發生錯誤。在每一個project元素下,可包含多個target元素。
project一般的寫法爲:
<project name ="jTest" default="jar" basedir=".">
意思是項目名爲jTest,默認執行jar命令,基準目錄是當前目錄。
default指的是該配置文件中要運行的默認的目標。看稍後的例子就會明白。
再說一下property節點,這個節點相似是定義了一些常量。Ant自身內建了一些預約義的屬性,好比${os.name} 的值就是當前操做系統的名字。若是某個值常常要用到的,那麼把它自定義在屬性裏面,這樣要用到這個值的時候,直接用${屬性名} 的方式就能夠得到了。內建屬性也有不少,能夠看幫助文檔瞭解更多。這裏只說明一下basedir屬性,該屬性設置了項目的基準路徑,該屬性在poject節點中定義。
property節點中,有2個特性,value和location,稍微有點區別,使用了value就不能使用location,反之亦然,若是這個屬性的值是一個路徑,那麼,若是用value的話,就必須給出絕對路徑,可是若是有location的話,能夠只給出相對路徑(相對於project中的basedir)。
target是目標的意思,它包含在project節點內部的,一個project節點能夠包含多個target。
一個target內部是定義一些動做命令,即target內定義要作些什麼任務。這些任務被稱做task。要作什麼任務必需要寫什麼樣的指令。這些指令在幫助文檔中均可以查到,這裏只列出幾個常見的。
copy,delete,mkdir,Jar,Java,Javac,看名字相似dos命令,做用也確實和dos命令的差很少。jar表示打包,java表示運行類文件,javac編譯文件。
看一個例子:
這組xml意思是target的名稱爲compile,這個能夠自定義,depends指的是依賴另外一個目標,也就是說若果要運行compile目標,必須先運行depends目標。
接下來就是javac任務,經過<javac srcdir="${src}" destdir="${build}"/>,表示對srcdir路徑下的類運行javac命令編譯,而後編譯的結果輸出到destdir中去。
${src},${build}都是屬性值。
最後看一個例子。
假設當前的要打包的原文件的目錄結構以下,把編輯好的build.xml文件放到要編譯打包的目錄中去。
build.xml的內容以下:
運行ant命令。兩種方式:若是當前路徑不是D:\tmpmulu\,則能夠經過-f參數指定build.xml文件的位置。
C:\Users\Administrator>C:\ant\bin\ant.bat -f D:\tmpmulu\build.xml
若是當前路徑是D:\tmpmulu\,直接運行ant.bat就能夠了,ant會自動尋找build.xml.
運行後,界面上會顯示出每一個目標的運行狀況,run目標中,會輸出程序打印的內容。而且在basedir下,生成一個Tj.jar的包。運行後的文件結構以下:
藉助一些IDE工具,好比eclipse等,能夠沒必要手動編輯build.xml,工具會自動幫咱們生成的。
本文出自 「一隻博客」 博客,請務必保留此出處http://cnn237111.blog.51cto.com/2359144/1130502