1.安裝antjava
2.配置環境變量:工具
ANT_HOME=ant安裝目錄 ui
PATH=%PATH%;%ANT_HOME%\bin spa
3.build.xml 命令行
<!--Ant(another neat tool---另外一個整潔的工具)-->
<?xml version="1.0"?>
<project default="dist" name="Project A">
<description>
一段描述信息,沒有實際做用。
</description>
<!--property 元素至關於變量,存放必定的值,一旦給定之後不能改變,只能經過控制檯命令行給初始值。
通常用 value 給其賦值,這裏用 location 代替 value 是由於 location 屬性專門設
計用於以平臺無關的方式包含文件系統路徑,也就是當前路徑。-->
<property name="srcDir" location="."/>
<property name="buildDir" location="classes"/>
<property name="distDir" location="dist"/>
<!--一個target 元素就是一個任務,一個步驟,若是命令行沒有指定開始任務,則由 project 元素的 default 屬性決定要執行的任務-->
<target name="init" description="在元素中指定描述信息!">
<echo message="這裏的信息將被輸出到控制檯!">
<!--tstamp 元素通常不定義屬性和內容,不產生任何輸出;相反,它根據當前系統時間和日期設置 Ant 如下屬性:
屬性 說明 例子
DSTAMP 設置爲當前日期,默認格式爲yyyymmdd 20031217
TSTAMP 設置爲當前時間,默認格式爲hhmm 1603
TODAY 設置爲當前日期,帶完整的月份 2003 年12 月17 日-->
<tstamp/>
<!--mkdir 元素用來建立目錄 dir 屬性用來指定目錄路徑-->
<!--delete 元素用來刪除目錄 ${buildDir} 引用 property 元素指定的 name 爲 buildDir 的屬性變量-->
<mkdir dir="${buildDir}"/>
<mkdir dir="${distDir}"/>
<!--文件操做:
<copy file="src/Test.java" tofile="src/TestCopy.java"/> 把文件 Test.java 拷貝一份 TestCopy.java
<move file="src/Test.java" tofile="src/TestCopy.java"/> 把文件 Test.java 從新命名爲 TestCopy.java
<copy file="src/Test.java" todir="archive"/> 把文件 Test.java 從 src 目錄複製一份到 archive 目錄下
<move file="src/Test.java" todir="archive"/> 把文件 Test.java 從 src 目錄下移動到 archive 目錄下
<replace file="input.txt" token="old" value="new"/>replace 任務,它執行文件中的查找和替換操做。
token 屬性指定要查找的字符串,
value 屬性指定一個新的字符串,
查找到的標記字符串的全部實例都被替換爲這個新的字符串.
替換操做將在文件自己以內的適當位置進行。爲了提供更詳細的輸出,可把 summary 屬性設置爲
true。這將致使該任務輸出找到和替換的標記字符串實例的數目。
<copy todir="archive">---使用模式匹配複製多個文件
<fileset dir="src">--fileset 代替 file 屬性
<include name="*.java"/>--包含 src 目錄下全部的 *.java 文件
<exclude name="*.class"/>--不包含 src 目錄下全部的 *.class 文件
</fileset>
</copy>-->
</target>
<!--target 元素的 depends 屬性用來設置多個 target 元素之間的依賴關係,若是要執行某個任務,必須先執行 depends 屬性指定的全部
它所依賴的 target 元素,只有它所依賴的全部 target 元素都執行完了才能執行它本身-->
<target name="com" depends="init">
<!--javac 元素把 srcdir 指定目錄下全部 *.java 文件編譯成 *.class 文件到 destdir 指定的目錄下!
若是不指定 destdir 屬性,那麼默認編譯到同一目錄下。其餘屬性:
classpath:等價於javac 的-classpath 選項。
debug="true":指示編譯器應該帶調試信息編譯源文件。
fork="true":當你但願指定編譯器的某些內存選項,或者須要使用一種不一樣級別的編譯器的時候。該屬性設置爲「true」
executable="d:sdk141injavac":指定一個不一樣的 javac 可執行文件。
memoryMaximumSize="128m":向上邊指定的 javac 傳遞一個最大內存設置-->
<javac srcdir="${srcDir}" destdir="${buildDir}"/>
</target>
<target name="dist" depends="com">
<!--jar 元素:在編譯 Java 源文件以後,結果類文件一般被打包到一個 JAR 文件中,這個文件相似 zip 歸檔文
件。每一個 JAR 文件都包含一個清單文件,它能夠指定該 JAR 文件的屬性。
還能夠把目錄下的全部內容打包爲 WAR 文件
destfile:打包後的文件全名
basedir:要打包的文件路徑-->
<jar destfile="${distDir}/package-${DSTAMP}.jar" basedir="${buildDir}">
<!--manifest 屬性容許指定一個用做該 JAR 文件的清單的文件。清單文件的內容還可使用 manifest
任務在生成文件中指定。這個任務可以像文件系統寫入一個清單文件,或者可以實際嵌套在 jar 之
內,以便一次性地建立清單文件和 JAR 文件。-->
<manifest>
<attribute name="Built-By" value="${user.name}"/>
<attribute name="Main-Class" value="package.Main"/>
</manifest>
</jar>
<jar destfile="${distDir}/package-src-${DSTAMP}.jar" basedir="${srcDir}"/>
</target>
<target name="zip" depends="dist">
<!--zip 元素用來建立 zip 包,和 jar 元素類似-->
<zip destfile="output.zip" basedir="output"/>
<!--相同的語法也可用於建立 tar 文件。 還可使用 GZip 和 BZip 任務來壓縮文件。-->
<tar destfile="output.tar" basedir="output"/>
<gzip src="output.tar" zipfile="output.tar.gz"/>
<!--解壓縮和提取文件一樣也很簡單.-->
<unzip src="output.tar.gz" dest="extractDir"/>
<!--還能夠包括 overwrite 屬性來控制覆蓋行爲。默認設置是覆蓋與正在被提取的歸檔文件中的條目相
匹配的全部現有文件。相關的任務名稱是 untar、unjar、gunzip 和 bunzip2。-->
</target>
<!--編寫一個 clean目標來從目標目錄移除生成的任何類文件是個很好的習慣。若是想要確
保全部源文件都已編譯,就可使用這個任務。這種行爲刻畫了 Ant 的許多任務的特色:
若是某個任務可以肯定所請求的操做不須要執行,那麼該操做就會被跳過。-->
<target name="clean">
<delete dir="${buildDir}"/>
<delete dir="${distDir}"/>
</target>
</project>debug