本文通過一個示例來解說如何通過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 on 2012-05-10 12:30
長春語林科技 閱讀(2947)
評論(0) 編輯 收藏 所屬分類:
util