1.ant的編譯檔案預設為build.xml,一般無需改變。
2.build.xml的根節點為<project>,一般格式如下:
<project name="AntStudy" default="init" basedir=".">
name為工程名稱;
default為預設的target,就是任務;
basedir就是基路徑。一般為"."
3.property可以定義變數,一般格式如下:
<property name="test" value="shit" />
引用的時候這麼引用${test}
如果變數是路徑的話,則可以這麼定義:
<property name="src" value="src" />
這麼定義就可以不用擔心"/"和"/"的問題了。
4.定義target:
<target name="compile" depends="init"><!--other command--></target>
name的值為target的名稱,可以在編譯的時候指定是完成哪個target,
否則採用project那裡定義的default。
depends則定義了依賴關係,值為其他target的name。多個依賴關係用","隔開,
順序執行完定義的依賴關係,才會執行這個target。
target在build.xml中定義的順序無所謂,但是depends中的順序必須正確。
5.編譯原始碼:
<javac srcdir="src" destdir="classes">
<classpath>
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
</classpath>
</javac>
這個標籤自動尋找src中以.java為副檔名的檔案,並且調用javac命令。
這個任務有個特點,它僅僅編譯那些需要編譯的源檔案。如果沒有更新,就不需要編譯,
速度就加快。
編譯檔案和ant使用的同一個jvm,大大減少資源浪費。
還可以指定classpath。classpath中指定檔案夾,然後指定包含的檔案的規則。
6.建立jar檔案:
<jar destfile="antstudy.jar" basedir="classes">
<manifest>
<attribute name="Main-Class" value="bean.ant.TestAnt" />
</manifest>
</jar>
manifest指定manifest中檔案的屬性,比如可以指定Main-Class
7.建立目錄:
<mkdir dir="classes" />
建立dir的檔案夾。
8.刪除目錄:
<delete dir="classes" />
刪除classes檔案夾
9.拷貝檔案:
<copy todir="${backup.dir}">
<fileset dir="${classes.dir}"/>
</copy>
把fileset檔案夾下面的所有檔案拷貝到 backup.dir
10.執行一個類:
<java dir="${build}" classname="bean.ant.TestAnt" fork="true" />
dir為工作資料夾,classname為類名。fork要設定為true。因為你編譯放class的檔案夾
正在使用,所以要新開啟一個虛擬機器。
11.產生javadoc:
<javadoc sourcepath="${src}" destdir="${docs}/javadoc" encoding="utf-8" charset="utf-8"
windowtitle="Spring Framework" source="1.5" access="package" author="true" version="true"
use="true" defaultexcludes="true">
<doctitle>
<![CDATA[<h1>Ant Test</h1>]]></doctitle>
<bottom>
<![CDATA[<i>Copyright (c) 2002-2007</i>]]></bottom>
<packageset dir="${src}">
<include name="bean/ant/**" />
</packageset>
</javadoc>
encoding="utf-8" charset="utf-8" 都需要,否則javadoc是亂碼。
packageset一定要設定,否則找不到源碼,格式可以是**.意思是所有源碼。
12.path的使用,可以定義path對象,在其他地方可以直接複用。
<path id="1">
<pathelement location="."/>
<pathelement location="./lib/junit.jar"/>
</path>
<path id="2">
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
</path>
<javac srcdir="./src" destdir="./classes">
<classpath refid="1"/>
</javac>
<javac srcdir="./src" destdir="./classes">
<classpath refid="1">
<pathelement location="."/>
<pathelement location="./lib/junit.jar"/>
</classpath>
</javac>
13.單元測試:
<junit printsummary="yes">
<classpath refid="testpath" />
<batchtest>
<fileset dir="${test}">
<include name="**/*Test.java" />
</fileset>
</batchtest>
</junit>
batchtest為批量test,需要設定合格類名稱。
在進行單元測試之前必須先進行編譯。
配置的classpath指向一個testpath的path,就是上面哪一條裡面講的。
一開始會報一個找不到junit的錯誤,可以用下面方法解決:
Windows>>Preference>>Ant>>Runtime>>Classpath
添加一個junit.jar 在 [eclipse home]/plugins/org.junit_3.8.1可以找到。
轉載自
http://252401762.javaeye.com/blog/312422