Ant入門--構建文件詳細分析

     一個項目在發佈過程中或者運行時,往往需要創建,複製刪除一些文件等編譯運行之外的事情去做,這時往往需要一個類似於make的過程。Ant就是基於這樣一個目的,它使用xml文件進行配置。下面是四子棋遊戲的構建文件,

<?xml version="1.0" encoding="UTF-8" ?>
<!-- ====================================================================== 
     2006-10-9 下午16:10                                                        

     project   Bingo 
     description  a DIY bingo game 
                   
     lilijun                                                                
     ====================================================================== 
-->
<project name="DIYBingo" default="bin" basedir=".">
    
<!-- 爲構建文件設置全局屬性 -->
    
<property name="src" value="."></property>
    
<property name="classes" value="classes"></property>
    
<property name="bin" value="bin"></property>
    
    
<!-- 初始化目標 --> 
    
<target name="init">
        
<tstamp/>
        
<mkdir dir="${classes}"/>
    
</target>
    
    
<!-- 用於編譯源文件的目標 -->
    
<target name="compile" depends="init">
        
<javac srcdir="${src}" destdir="${classes}">
        
</javac>
    
</target>
    
    
<!-- 用於打包發佈的目標 -->
    
<target name="bin" depends="compile">
        
<mkdir dir="${bin}"/>
        
<jar jarfile="${bin}/DIYBingo.jar" basedir="${classes}">
                
        
</jar>
        
<java classname="com.lilijun.game.bingo.ui.BingoGameUI" fork="true" >
            
<arg value="-h"/>
            
<classpath>
               
<pathelement location="${bin}/DIYBingo.jar"/>
               
<pathelement path="${java.class.path}"/>
            
</classpath>
         
</java>
    
</target>
    
    
<!-- 用於清理此次構建生成文件的目標 -->
    
<target name="clean">
        
<delete dir="${classes}"></delete>
        
<delete dir="${bin}"></delete>
    
</target> 
</project>

現在根據自己的理解分析如下。

 第一,每一個項目都有一個<project></project>標籤。它有以下幾個屬性:name爲項目名稱,default爲默認的目標任務,basedir爲項目根目錄,一般爲"."。例如<project name="DIYBingo" default="bin" basedir="."> </project>

第二,設置項目構建文件的全局屬性,它可以在定義後的任何位置被引用。用<property/>定義。它的屬性有:name爲屬性名稱,location爲該屬性代表的位置。它可以通過${}引用。例如<property name="src" value="src"></property>,在引用時使用${src}即可。
第三,一個構建文件target至少有一個,爲默認的。target A可以依賴於另一個target B,這樣的話,A必須在B執行後的前提下執行。它的屬性有:name爲目標名稱。depends爲所依賴的目標。

第四,Ant中有許多已經定義好的task,用戶可以直接使用。每一個task代表着一個可執行的代碼段,完成一定的功能。這些tasks大約可以分爲19類,乍一看好像無從下手,其實作爲初學者,我覺得記住幾個比較常用的就行了,它們是javac,java,jar,copy,mkdir,delete就可以了。具體的如果需要可以查閱ant在線文檔:http://ant.apache.org/manual/index.html。下面就常用的說明一下。

1.javac用來編譯java源代碼。常用屬性有:srcdir爲源代碼存放目錄,destdir爲編譯後的類的存放目錄,classpath爲要用到的類路徑。

2.java用來運行一個類或項目主類。常用屬性有:classname爲要執行的類名稱,jar爲運行類所需的類的jar文件,fork一般爲true,在使用jar時就必須爲true。args爲運行的參數,現已廢棄不用,換之用內嵌的<arg>標籤。

3.jar用來生成類和資源的jar文件。常用屬性有:destfile爲要創建的jar文件名稱。basedir爲用來生成jar文件的根目錄。

4.copy用來複制文件。常用屬性有:file爲被複制的文件。它可以被內嵌的<fileset>代替。tofile爲複製的目的地。todir與tofile功能相同。當使用file屬性時,則tofile和todir均可。當使用<fileset>內嵌標籤時,若目的地址多於一個,或者文件或目錄的屬性在fileset中被確定,則只能使用todir。

5.mkdir用來創建文件目錄。只有一個屬性dir:要創建的目錄。

6.delete用來刪除一個文件目錄。常用屬性:file或dir,若<fileset>中沒有確定,則二者必須使用一個。

至此,四子棋遊戲中的構建文件t介紹完了,最後,由於我剛學Ant,四子棋不滿意的或者說得不對的地方先道歉了,希望大家給出寶貴建議!共同進步!並附上項目文件目錄樹:

-DIYBingo
 |--classes(存放編譯後的類)
 |   --com
 |      --lilijun
 |         --game
 |            --bingo
 |               --player
 |               --ui
 |               --util    
 |--src
 |   --com(存放源代碼)
 |      --lilijun
 |         --game
 |            --bingo
 |               --player(Player.java,ManPlayer.java)
 |               --ui(ChessBoardPane.java,BingoGameUI.java)
 |               --util(GameController.java,GameTable.java,TestWin.java)
 |--bin(jar文件)
 |   --DIYBingo.jar
 |--resources
 |--build.xml(構建文件)
 |--.classpath
 |--.project

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章