一. ant 的构建文件:
1. 目录结构:
antBook
antBook/src
antBook/build
antBook/build/classese
antBook/build/lib
1. antBook/build.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>
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 >元素。