Ant入门--构建文件详细分析

来源:互联网 发布:mac暂存盘已满怎么办 编辑:程序博客网 时间:2024/04/30 10:41

     一个项目在发布过程中或者运行时,往往需要创建,复制删除一些文件等编译运行之外的事情去做,这时往往需要一个类似于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

原创粉丝点击