利用ant进行编译和发布项目

本文通过一个示例来解说如何通过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 来访问例子程序了。

posted @ 2015-08-21 11:42  凡尘里的一根葱  阅读(572)  评论(0编辑  收藏  举报