ant的构建文件
一. ant 的构建文件:
1. 目录结构:
antBook
antBook/src
antBook/build
antBook/build/classese
antBook/build/lib
1. antBook/build.xml
Xml代码
- <?xml version="1.0" encoding="utf-8"?>
- <project name="simple Buildfile" default="compile" basedir=".">
- <!-- The directory containing source code-->
- <property name="src.dir" value="src"/>
- <!-- Temporary build directories -->
- <property name="build.dir" value="build"/>
- <property name="build.classes" value="${build.dir}/classes"/>
- <property name="build.lib" value="${build.dir}/lib"/>
- <!--compile target-->
- <target name="prepare">
- <mkdir dir="${build.dir}"/>
- <mkdir dir="${build.classes}"/>
- <mkdir dir="${build.lib}"/>
- </target>
- <target name="clean" description="removes all generated files.">
- <delete dir="${build.dir}"/>
- </target>
- <target name="compile" depends="prepare" description="编译文件">
- <javac srcdir="${src.dir}" destdir="${build.classes}"/>
- </target>
- <target name="jar" depends="compile" description="压缩成jar">
- <jar jarfile="${build.lib}/oreilly.jar" basedir="${build.classes}"
- excludes="**/*Test.class"/>
- </target>
- <target name="all" depends="clean,jar" description="cleans,compiles.."/>
- </project>
<?xml version="1.0" encoding="utf-8"?>
<project name="simple Buildfile" default="compile" basedir=".">
<!-- The directory containing source code-->
<property name="src.dir" value="src"/>
<!-- Temporary build directories -->
<property name="build.dir" value="build"/>
<property name="build.classes" value="${build.dir}/classes"/>
<property name="build.lib" value="${build.dir}/lib"/>
<!--compile target-->
<target name="prepare">
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.classes}"/>
<mkdir dir="${build.lib}"/>
</target>
<target name="clean" description="removes all generated files.">
<delete dir="${build.dir}"/>
</target>
<target name="compile" depends="prepare" description="编译文件">
<javac srcdir="${src.dir}" destdir="${build.classes}"/>
</target>
<target name="jar" depends="compile" description="压缩成jar">
<jar jarfile="${build.lib}/oreilly.jar" basedir="${build.classes}"
excludes="**/*Test.class"/>
</target>
<target name="all" depends="clean,jar" description="cleans,compiles.."/>
</project>
2. ant运行时会显示每个所执行到的目标的名字,ant 先执行了prepare,其后才执行compile,这是因为compile是默认目标,而它对prepare目标存在一个依赖关系。
3. ant运行指定的构建文件时,命令如下:
ant -buildfile *.xml
ant -buildfile *.xml clean
4. 可以运行一条命令执行多个目标:
ant clean jar
5.可以输入ant all 来完成清理和重新构建, 因为all依赖于clean和 jar. 而jar进一步依赖compile,compile则依赖于prepare, 这样一条简单的命令ant all 既可以按适当的顺序完成所以目标。
6. 获得描述信息:
包含description属性的为主目标,没有描述的则为子目标。
从工程的基目录键入: ant -projecthelp 可获得如下输出信息:
Main targets:
all cleans,compiles..
clean removes all generated files.
compile 编译文件
jar 压缩成jar"
Default target: compile
7. 获得ant 命令行参数: 键入ant -help
-help:
显示描述ant 命令及其选项的帮助信息。
-projecthelp:
显示description属性中的文本信息
-version : 显示ant版本信息
-quiet :
抑制并非由构建文件中的echo任务所产生的大多数消息。
-verbose:
显示构建过程中每个操作的详细信息,此选项与-debug只能选择其一。
-debug
显示ANT和任务开发人员已经标志为调式消息的消息,此选项与-verbose只能选其一。
-emacs
对日志消息进行格式化,使他们能够很容易的由emacs的shell模式所解析; 也就是说,打印任务事件,但并不缩排,在期之前也没有[taskname].
-logger classname
指定一个类来处理ANT 的日志记录,所指定的类必须实现了org.apache.tools.ant.BuildLogger接口。
-listener classname
为ANT 声明一个监听类,并增加到其监听者列表中,在ANT与IDE或者其他JAVA程序集成时,此选项非常有用。
必须将所指定的监听类编写为可以处理ANT的构建消息接发。
-buildfile filename
指定ant需要处理的文件, 默认的构建文件为build.xml
-Dproperty=value
在命令行上定义一个特殊名-值对。
-find filename
指定ant应当处理的构建文件。 与-buildfile选项不同,如果所指定文件在当前目录中未找到,-file就要求ant在其父目录中再进行搜索,这种搜索会继续在其祖目录中进行,直到到达文件系统根目录为止, 在此如果文件还未找到则构建失败。
8. 构建文件的几点事项:
(1. 所有构建文件都要有<project >元素, 而且至少有一个<target>元素。
(2. 对于<project >元素的default属性并没有默认值。
(3. 构建文件并不一定要命名为build.xml,ant默认搜索该文件。
(4. 每个构建文件只有一个<project >元素。