本文通过一个示例来解说如何通过ant进行编译和发布项目。
本例按如下目录结构来组织项目。
D:/web/antsample项目根目录
D:/web/antsample/src源代码目录
D:/web/antsample/src/sample/HelloWorld.java示例HelloWorld代码文件
D:/web/antsample/app应用程序目录
D:/web/antsample/app/index.jsp默认首页文件
D:/web/antsample/app/WEB-INF
D:/web/antsample/app/WEB-INF/web.xml应用程序描述文件
D:/web/antsample/app/WEB-INF/lib应用程序库目录
D:/web/antsample/context.xml应用程序环境配置文件,数据源、应用程序路径(path)、文档路径(docBase)等信息在此配置。
D:/web/antsample/build.xml
build.xml 文件内容
<?xml version="1.0" encoding="UTF-8"?> <project name="antsample" default="jar" basedir="."> <property environment="env"/> <echo message="Ant 版本 ${ant.java.version}"/> <property name="tomcat.home" value="/home/xiaojf/tomcat6"/> <!-- tomcat目录 --> <property name="web.home" value="./app"/> <!-- 应用程序目录 --> <property name="src.home" value="./src"/> <!-- java源文件目录 --> <property name="jarFile" value="${web.home}/WEB-INF/lib/${ant.project.name}.jar"/> <!-- jar文件位置 --> <property name="warFile" value="./${ant.project.name}.war"/> <!-- war文件位置 --> <property name="srcDeployFile" value="./context.xml"/> <!-- 源部署文件 --> <property name="distDeployFile" value="${tomcat.home}/conf /Catalina/localhost/${ant.project.name}.xml"/> <!-- 源部署文件 --> <property name="jdk1.5" value="/usr/lib/jvm/jdk1.5/bin/javac"/> <!-- 设置jdk1.5编译器的全路径 --> <property name="jdk1.6" value="/usr/lib/jvm/jdk1.6/bin/javac"/> <!-- 设置jdk1.6编译器的全路径 --> <property name="javaCompiler" value="${jdk1.6}"/> <!-- 编译时使用的javac --> <!-- 设置 classpath,即编译时需要引用的库文件 --> <path id="classpath"> <fileset dir="${web.home}/WEB-INF/lib"> <!-- 引用应用程序WEB-INF/lib下的所有jar --> <include name="**/*.jar"/> </fileset> <fileset dir="${tomcat.home}/lib"> <!-- 引用Tomcat/lib下的所有jar --> <include name="**/*.jar"/> </fileset> </path> <!-- 清除已经生成的class文件 --> <target name="clean"> <delete> <fileset dir="${src.home}" includes="**/*.class"/> </delete> </target> <!-- 编译src.home下的所有java文件。fork被设置为true,这样可指定编译使用的JDK,此处使用jdk1.5。必须根据java源文件的编码来设置encoding。 --> <target name="compile" depends="clean"> <javac srcdir="${src.home}" debug="on" deprecation="on" optimize="off" includes="**" includeantruntime="on" encoding="UTF-8" fork="yes" executable="${javaCompiler}" > <classpath refid="classpath"/> <compilerarg value="-Xlint:unchecked"/> </javac> </target> <!-- 打包,并将jar放置在应用程序WEB-INF/lib下。 --> <target name="jar" depends="compile"> <jar destfile="${jarFile}" basedir="${src.home}" includes="**/*.class **/*.xml"/> </target> <target name="war" depends="jar"> <war destfile="${warFile}" basedir="${web.home}"/> </target> <!-- 布置应用程序到Tomcat --> <target name="deploy"> <copy file="${srcDeployFile}" tofile="${distDeployFile}"/> </target> <!-- 从Tomcat上卸载应用程序 --> <target name="undeploy"> <delete file="${distDeployFile}"/> </target> </project>
运行本例,您必须修改build.xml中tomcat目录的全路径和context.xml中的相应信息。
进入D:/web/antsample,输入ant命令,即可编译程序,并将其生成的class文件打包成jar,布置到app/WEB-INF/lib下。
运行ant deploy 即可拷贝context.xml到Tomcat/conf/Catalina/localhost/antsample.xml,完成程序的布置。
运行ant undeploy 即可删除Tomcat/conf/Catalina/localhost/antsample.xml文件完成程序的卸载。
现在您可以输入 http://localhost:8080/antsample 来访问例子程序了。