ant build.xml文檔編寫

 <?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 屬性用來指定目錄路徑-->
        
<!--$ 引用 property 元素指定的 name 爲 buildDir 的屬性變量,這裏爲classes-->
        
<mkdir dir="$"/>
        
<mkdir dir="$"/>
        
<!--文件操作:
             <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:sdk141 injavac":指定一個不同的 javac 可執行文件。
              memoryMaximumSize="128m":向上邊指定的 javac 傳遞一個最大內存設置
-->
        
<javac srcdir="$" destdir="$"/>
    
</target>

    
<target name="dist" depends="com">
        
<!--jar 元素:在編譯 Java 源文件之後,結果類文件通常被打包到一個 JAR 文件中,這個文件類似 zip 歸檔文
             件。每個 JAR 文件都包含一個清單文件,它可以指定該 JAR 文件的屬性。
             還可以把目錄下的所有內容打包爲 WAR 文件
             destfile:打包後的文件全名
             basedir:要打包的文件路徑
-->
        
<jar destfile="$/package-$.jar" basedir="$">
            
<!--manifest 屬性允許指定一個用作該 JAR 文件的清單的文件。清單文件的內容還可以使用 manifest
                 任務在生成文件中指定。這個任務能夠像文件系統寫入一個清單文件,或者能夠實際嵌套在 jar 之
                 內,以便一次性地創建清單文件和 JAR 文件。
-->
            
<manifest>
                
<attribute name="Built-By" value="$"/>
                
<attribute name="Main-Class" value="package.Main"/>
            
</manifest>
        
</jar>
        
<jar destfile="$/package-src-$.jar" basedir="$"/>
    
</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 的許多任務的特點:
         如果某個任務能夠確定所請求的操作不需要執行,那麼該操作就會被跳過。
-->

       <!--delete 元素用來刪除目錄 $ 引用 property 元素指定的 name 爲 buildDir 的屬性變量-->
    
<target name="clean">
        
<delete dir="$"/>
        
<delete dir="$"/>
    
</target>
</project>

發佈了20 篇原創文章 · 獲贊 3 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章