1 Ant是什麼? Apache Ant 是一個基於 Java的生成工具。 生成工具在軟件開發中用來將源代碼和其餘輸入文件轉換爲可執行文件的形式(也有可能轉換爲可安裝的產品映像形式)。隨着應用程序的生成過程變得更加複雜,確保在每次生成期間都使用精確相同的生成步驟,同時實現儘量多的自動化,以便及時產生一致的生成版本 Ant工具的做用: 一、能夠用ant編譯java類,生成class文件 二、ant能夠自定義標籤、配置文件 三、ant能夠把相關層架構成包 四、ant把整個項目生成web包,併發布到Tomcat 1.<project>標籤 每一個構建文件對應一個項目。<project>標籤時構建文件的根標籤。它能夠有多個內在屬性, 就如代碼中所示,其各個屬性的含義分別以下。 (1) default表示默認的運行目標,這個屬性是必須的。 (2) basedir表示項目的基準目錄。 (3) name表示項目名。 (4) description表示項目的描述。 每一個構建文件都對應於一個項目,可是大型項目常常包含大量的子項目,每個子項目均可以有本身的構建文件。 <project defalut="默認執行" basedir="基準目錄" name="項目名字" description="描述"> 2.<target>標籤 一個項目標籤下能夠有一個或多個target標籤。一個target標籤能夠依賴其餘的target標籤。例如,有一個target用於編譯程序,另外一個target用於聲稱可執行文件。在生成可執行文件以前必須先編譯該文件,因策可執行文件的target依賴於編譯程序的target。Target的全部屬性以下。 (1).name表示標明,這個屬性是必須的。 (2).depends表示依賴的目標。你所依賴的target會先執行 (3)if表示僅當屬性設置時才執行。 (4)unless表示當屬性沒有設置時才執行。 (5)description表示項目的描述。 Ant的depends屬性指定了target的執行順序。Ant會依照depends屬性中target出現順序依次執行每一個target。在執行以前,首先須要執行它所依賴的target。程序中的名爲run的target的depends屬性compile,而名爲compile的target的depends屬性是prepare,因此這幾個target執行的順序是prepare->compile->run。 一個target只能被執行一次,即便有多個target依賴於它。若是沒有if或unless屬性,target總會被執行。 3.<mkdir>標籤 該標籤用於建立一個目錄,它有一個屬性dir用來指定所建立的目錄名,其代碼以下: <mkdir dir=」${class.root}」/> 經過以上代碼就建立了一個目錄,這個目錄已經被前面的property標籤所指定。 4<jar>標籤 該標籤用來生成一個JAR文件,其屬性以下。 (1) destfile表示JAR文件名。 (2) basedir表示被歸檔的文件名。放到那個目錄下面 (3) includes表示別歸檔的文件模式。 (4) exchudes表示被排除的文件模式。 5.<javac標籤> 該標籤用於編譯一個或一組java文件,其屬性以下。 (1).srcdir表示源程序的目錄。 (2).destdir表示class文件的輸出目錄。 (3).include表示被編譯的文件的模式。 (4).excludes表示被排除的文件的模式。 (5).classpath表示所使用的類路徑。 (6).debug表示包含的調試信息。 (7).optimize表示是否使用優化。 (8).verbose 表示提供詳細的輸出信息。 (9).fileonerror表示當碰到錯誤就自動中止。 6.<java>標籤 該標籤用來執行編譯生成的.class文件,其屬性以下。 (1).classname 表示將執行的類名。 (2).jar表示包含該類的JAR文件名。 (3).classpath所表示用到的類路徑。 (4).fork表示在一個新的虛擬機中運行該類。 (5).failonerror表示當出現錯誤時自動中止。 (6).output 表示輸出文件。 (7).append表示追加或者覆蓋默認文件。 7.<delete>標籤 該標籤用於刪除一個文件或一組文件,去屬性以下。 (1)/file表示要刪除的文件。 (2).dir表示要刪除的目錄。 (3).includeEmptyDirs 表示指定是否要刪除空目錄,默認值是刪除。 (4).failonerror 表示指定當碰到錯誤是否中止,默認值是自動中止。 (5).verbose表示指定是否列出所刪除的文件,默認值爲不列出。 常見的有 <delete dir="${basedir}/docs" quiet="true" failonerror="false" /> <delete file="cobertura.ser" quiet="true" failonerror="false" /> 8.<copy>標籤 該標籤用於文件或文件集的拷貝,其屬性以下。 (1).file 表示源文件。 (2).tofile 表示目標文件。到文件 (3).todir 表示目標目錄。到目錄的意思 (4).overwrite 表示指定是否覆蓋目標文件,默認值是不覆蓋。 (5).includeEmptyDirs 表示制定是否拷貝空目錄,默認值爲拷貝。 (6).failonerror 表示指定如目標沒有發現是否自動中止,默認值是中止。 (7).verbose 表示制定是否顯示詳細信息,默認值不顯示。 輸出信息 <echo message=」xxx」 /> 引入一個xml文件 <import file="../common-targets.xml"/> 拷貝一個文件 <copy file="myfile.txt" tofile="mycopy.txt"/> 拷貝一個文件到指定目錄 <copy file="myfile.txt" todir="../some/other/dir"/> 拷貝一個目錄到另外一個目錄 <copy todir="../new/dir"> <fileset dir="src_dir"/> </copy> [align=left][/align] <import file="build-doc.xml"/> 導入一個文件
|