第四章 使用Ant进行持续整合这一章是对Ant的一个基础介绍,包括1.Ant构建文件 build.XML2.项目 <project name="myproject" default="all" basedir=".">3.目标 <target name="all" depends="clean, fetch, build, test, docs, deploy">Steve Loughran的Ant in Anger中top-level targets的推荐命名如下: test— 运行JUnit测试 clean— 清空输出目录 deploy— 将JARs, WARs等文件部署到执行环境中 publish— 输出源代码和二进制文件到发布站点(指IIS,Html?我不知道) fetch— 从CVS中得到最新源代码 docs/Javadocs— 输出文档文件 all— 执行以上所有(clean, fetch, build, test, docs, and deploy) main— 默认构建过程 (经常是build 或者build & test)internal targets的推荐命名如下: init— 初始化properties执行其他初始化任务,读入property文件 init-debug— 初始化调试属性 init-release— 初始化发布属性 compile— 实际的编译 link/jar— 建立JAR文件或其它等价文件 staging— 预部署并且测试4.条件性目标<target name="setupProdution" if="prodUCtion"> <target name="setupDevelopment" unless="production"> ant -build.XML build4.XML -Dproduction=true5.文件集和路径设置<project name="hello" default="compile"> <property name="lib" value="../lib"/> <property name="outputdir" value="/tmp"/> <path id="1"> <pathelement location="."/> <pathelement location="${lib}/log4j.jar"/> </path> <path id="2"> <pathelement path=".;${lib}/log4j.jar"/> </path> <path id="3"> <pathelement location="."/> <fileset dir="${lib}"> <include name="**/*.jar"/> </fileset> </path> <target name="compile"> <javac srcdir="./src" destdir="${outputdir}/classes"> <classpath refid="1"/> </javac> <javac srcdir="./src" destdir="${outputdir}/classes"> <classpath refid="2"/> </javac> <javac srcdir="./src" destdir="${outputdir}/classes"> <classpath refid="3"/> </javac> <javac srcdir="./src" destdir="${outputdir}/classes"> <classpath id="1"> <pathelement location="."/> <pathelement location="${lib}/log4j.jar"/> </classpath> </javac> </target></project>6.过滤器<filter token="jdbc_url" value="jdbc::development">7.嵌套构建文件<ant antfile="./hello/build.XML"> <property name="production value="true"" /></ant>8.property<property name="outputdir" value="/tmp" />
总体来看ant是一个强大的自动化构建工具,代码编写完后的工作都可以交给ant来完成。