build.xml詳解(ant打包)

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

相關文章
相關標籤/搜索