新建一個build.xml,放在工程根目錄下。build.XML定義了Ant要履行的批處理命令。固然Ant也可以應用其它文件名,但是遵守尺度能更使開發更規范,同時易於與別人交換。
通常,src存放Java源文件,classes存放編譯後的class文件,lib存放編譯和運行用到的所有jar文件,web存放JSP等web文件,dist存放打包後的jar文件,doc存放API文檔。
然後在根目錄下創立build.XML文件,輸進以下內容:
<?XML version="1.0"?>
<project name="Hello world" default="doc">
<!-- properIEs -->
<property name="src.dir" value="src" />
<property name="report.dir" value="report" />
<property name="classes.dir" value="classes" />
<property name="lib.dir" value="lib" />
<property name="dist.dir" value="dist" />
<property name="doc.dir" value="doc"/>
<!-- 定義classpath -->
<path id="master-classpath">
<fileset file="${lib.dir}/*.jar" />
<pathelement path="${classes.dir}"/>
</path>
<!-- 初始化任務 -->
<target name="init">
</target>
<!-- 編譯 -->
<target name="compile" depends="init" description="compile the source files">
<mkdir dir="${classes.dir}"/>
<Javac srcdir="${src.dir}" destdir="${classes.dir}" target="1.4">
<classpath refid="master-classpath"/>
</Javac>
</target>
<!-- 測試 -->
<target name="test" depends="compile" description="run junit test">
<mkdir dir="${report.dir}"/>
<junit printsummary="on"
haltonfailure="false"
failureproperty="tests.failed"
showoutput="true">
<classpath refid="master-classpath" />
<formatter type="plain"/>
<batchtest todir="${report.dir}">
<fileset dir="${classes.dir}">
<include name="**/*Test.*"/>
</fileset>
</batchtest>
</junit>
<fail if="tests.failed">
***********************************************************
****One or more tests failed!Check the output ...****
***********************************************************
</fail>
</target>
<!-- 打包成jar -->
<target name="pack" depends="test" description="make .jar file">
<mkdir dir="${dist.dir}" />
<jar destfile="${dist.dir}/hello.jar" basedir="${classes.dir}">
<exclude name="**/*Test.*" />
<exclude name="**/Test*.*" />
</jar>
</target>
<!-- 輸出api文檔 -->
<target name="doc" depends="pack" description="create api doc">
<mkdir dir="${doc.dir}" />
<Javadoc destdir="${doc.dir}"
author="true"
version="true"
use="true"
windowtitle="Test API">
<packageset dir="${src.dir}" defaultexcludes="yes">
<include name="example/**" />
</packageset>
<doctitle><![CDATA[<h1>Hello, test</h1>]]></doctitle>
<bottom><![CDATA[<i>All Rights Reserved.</i>]]></bottom>
<tag name="todo" scope="all" description="To do:" />
</Javadoc>
</target>
</project>
以上XML依次定義了init(初始化),compile(編譯),test(測試),doc(天生文檔),pack(打包)任務,可以作為模板。