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
<?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
相关文章推荐
- 构建文件入门—ant入门指南(2)
- 构建文件入门—ant入门指南(2)
- SD卡中FAT32文件格式快速入门(图文详细介绍)【转】
- Ant快速入门(三)-----定义生成文件
- dbm数据库源代码分析(2):构建性文件
- Android 根文件系统启动过程(init进程 详细分析)
- 根文件系统的构建与分析(二)之构建动态库
- web.xml文件的详细分析
- FLV文件(H264 + AAC)格式超详细分析
- U-Boot-1.1.6顶层目录mkconfig脚本配置文件详细分析
- Docker中镜像构建文件Dockerfile与相关命令的详细介绍
- 硬盘 FAT 文件系统原理的详细分析
- Android JNI入门第四篇——jni头文件分析
- SD卡中FAT32文件格式快速入门(图文详细介绍)
- Web Service学习笔记(webservice、soap、wsdl、jws详细分析) Webservice的wsdl文件解析与Soap消息的发送、接收(不生成java客户端代码)
- Node.JS入门--通过构建一个上传文件的服务器来学习Node.JS
- ant的build.xml文件分析
- Android JNI入门第三篇——jni头文件分析
- Android JNI入门第四篇——Android.mk文件分析
- SD卡中FAT32文件格式快速入门(图文详细介绍)