您的位置:首页 > 其它

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

2006-10-17 20:42 435 查看
一个项目在发布过程中或者运行时,往往需要创建,复制删除一些文件等编译运行之外的事情去做,这时往往需要一个类似于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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: