Dashboard > OpenSource Project > ... > Ant > 4.Ant常用任務標籤
OpenSource Project Log In   View a printable version of the current page.
4.Ant常用任務標籤
Added by zach14c, last edited by zach14c on Sep 06, 2006
Labels: 
(None)

General Tasks:

  • delete
  • copy
  • mkdir
  • javac
  • jar

構建一個基本的程式有幾個常用的任務,像是設定通用屬性、清除前一次構建的檔案或目錄、複製檔案、建立目標目錄、編譯程式、打包程式等等,以下介紹如何在build.xml中編寫對應的任務目標。

當您在編寫build.xml時發現到有一些屬性設定出現過兩次以上,例如目錄的指定,您可以將這些屬性使用<property>加以設定,這樣以後若要改變屬性設定,就只要改變對應的<property>即可,例如:

<target name="setProperties" description="setup the common properties">
    <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>

在每一次構建程式前,您會想要刪除前一次的構建結果,您可以使用<delete>來指定刪除目錄或檔案,例如:

<target name="clean" description="clean up the previous built files or dirs">
    <delete dir="${classes.dir}"/>
    <delete file="${jar.file}"/>
</target>

在每一次構建程式前,您會想要複製前一次的構建結果,您可以使用<copy>來指定複製檔案,例如:

<target name="backup" description="backup some old files">
   <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>

您也可以使用<jar>來為您將編譯完成的檔案打包為jar檔案,並可以指定manifest檔案,例如:

<target name="package" description="package all class files">
    <jar jarfile="${jar.file}" manifest="./META-INF/MANIFEST.MF" basedir="${classes.dir}"/>
</target>

為了完成jar打包的任務,您必須在META-INF目錄下提供一個manifest檔案,例如:

Manifest-Version: 1.0
Created-By: Justin
Main-Class: JNameIt
Class-Path: JNameIt.jar

Site powered by a free Open Source Project / Non-profit License (more) of Confluence - the Enterprise wiki.
Learn more or evaluate Confluence for your organisation.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.1.5a Build:#411 Mar 16, 2006) - Bug/feature request - Contact Administrators