以下介紹幾個常用的<target>撰寫:設定屬性當您在編寫build.xml時發現到有一些屬性設定出現過兩次以上,例如目錄的指定,您可以將這些屬性使用<property>加以設定,這樣以後若要改變屬性設定,就只要改變對應的<property>即可,例如:<target name="setProperties">
<property name="src.dir" value="src"/> <property name="classes.dir" value="classes"/> <property name="lib.dir" value="lib"/> <property name="backup.dir" value="bak"/> <property name="jar.file" value="${lib.dir}/JNameIt.jar"/> </target> 您可以參考 取得、提供屬性 瞭解更多的細節。 提供 help 資訊您可以提供一些ant檔案的help資訊,例如:<target name="help" description="help info">
<echo message="help information!!"/> <echo>Help! Help!</echo> <echo><![CDATA[ Here is a help info. Write your own information here. ]]></echo> </target> 之後在執行ant加上-projecthelp就會自動顯示help這個target的內容,如果有加上description,當使用ant -projecthelp時也會一併顯示該訊息。 檔案的複製、建立與刪除在每一次建構程式前,您會想要複製前一次的建構結果,您可以使用<copy>來指定複製檔案,例如:<target name="backup">
<copy todir="${backup.dir}"> <fileset dir="${classes.dir}"/> </copy> </target> 在構建程式時,您可以使用<mkdir>建立一些必要的目錄,例如: <target name="prepareDir"
description="prepare necessary dirs"> <mkdir dir="${classes.dir}"/> <mkdir dir="${lib.dir}"/> <mkdir dir="${backup.dir}"/> </target> 編譯程式編譯程式的任務當然是最常用的,您還可以在編譯程式時,加入一些CLASSPATH的指定,這是個相當方便的功能 ,例如:<target name="compile"
description="compile the source files"> <javac srcdir="./src" destdir="${classes.dir}"> <classpath> <fileset dir="${lib.dir}"> <include name="**/*.jar"/> </fileset> </classpath> </javac> </target> 您可以參考 路徑參考 瞭解更多有關路徑設定的細節。 執行程式<java>標籤用來執行Java程式,例如:<java classname="onlyfun.caterpillar.HelloWorld">
<classpath path="."/> </java> 製作 jar 檔案您也可以使用<jar>來為您將編譯完成的檔案打包為jar(Java Archive File),並可以指定manifest檔案,例如:<target name="jar">
<jar jarfile="${jar.file}" manifest="./META-INF/MANIFEST.MF" basedir="${classes.dir}"/> </target> 如果有提供MANIFEST.MF檔案,才需要設定manifest屬性,為了完成jar打包的任務,您可以在META-INF目錄下提供一個 MANIFEST.MF檔案,例如:
Manifest-Version: 1.0 製作 war 檔案對於網站應用程式的佈署,您可以使用<war>將所有相關的檔案包裝為war(Web Application Archive),例如:<target name="war">
<war destfile="bin/guestbook.war" webxml="src/webapp/WEB-INF/web.xml"> <classes dir="target/classes"/> <lib file="beantools.jar"/> </war> </target> |