Ant打包應用

我們已經知道Ant使用的Hello World Fax 的Web應用程序中零碎的不同。

現在是時候把一切融合在一起,以創建一個完整的和完整的build.xml文件。考慮build.properties和build.xml文件列表如下:

build.properties

deploy.path=c: omcat6webapps

build.xml

<project name="fax" basedir="." default="usage"> <property file="build.properties"/> <property name="src.dir" value="src"/> <property name="web.dir" value="war"/> <property name="javadoc.dir" value="doc"/> <property name="build.dir" value="${web.dir}/WEB-INF/classes"/> <property name="name" value="fax"/> <path id="master-classpath"> <fileset dir="${web.dir}/WEB-INF/lib"> <include name="*.jar"/> <pathelement path="${build.dir}"/> <target name="javadoc"> <javadoc packagenames="faxapp.*" sourcepath="${src.dir}" destdir="doc" version="true" windowtitle="Fax Application"> <![CDATA[

= Fax Application
=

]]> <![CDATA[Copyright © 2011. All
Rights Reserved.]]>
<group title="util packages" packages="faxapp.util.*"/> <group title="web packages" packages="faxapp.web.*"/> <group title="data packages" packages="faxapp.entity.*:faxapp.dao.*"/> <target name="usage"> <echo message=""/> <echo message="${name} build file"/> <echo message="-----------------------------------"/> <echo message=""/> <echo message="Available targets are:"/> <echo message=""/> <echo message="deploy --> Deploy application
as directory"/> <echo message="deploywar --> Deploy application
as a WAR file"/> <echo message=""/> <target name="build" description="Compile main
source tree java files"> <mkdir dir="${build.dir}"/> <javac destdir="${build.dir}" source="1.5" target="1.5" debug="true" deprecation="false" optimize="false" failonerror="true"> <src path="${src.dir}"/> <classpath refid="master-classpath"/> <target name="deploy" depends="build" description="Deploy application"> <copy todir="${deploy.path}/${name}" preservelastmodified="true"> <fileset dir="${web.dir}"> <include name="**/*.*"/> <target name="deploywar" depends="build" description="Deploy application as a WAR file"> <war destfile="${name}.war" webxml="${web.dir}/WEB-INF/web.xml"> <fileset dir="${web.dir}"> <include name="**/*.*"/> <copy todir="${deploy.path}" preservelastmodified="true"> <fileset dir="."> <include name="*.war"/> <target name="clean" description="Clean output directories"> <fileset dir="${build.dir}"> <include name="**/*.class"/>

在這個例子中,我們首先聲明的路徑的webapps文件夾中的Tomcat在生成屬性文件作爲deploy.path變量。我們還聲明的源文件夾src.dir的變量的java文件。然後我們聲明的源文件夾中web.dir變量的網頁文件。 javadoc.dir是用於存儲Java文檔的文件夾,build.dir是用於存儲生成的輸出文件的路徑。

然後我們聲明的Web應用程序,這是 Fax 在我們的例子中的名稱。

我們還定義了主類路徑的conains存在於項目的WEB-INF/lib文件夾中的JAR文件。我們還包括了類文件呈現在build.dir在主類路徑

Javadoc的目標生產項目所需的Javadoc和使用對象是用來打印,是目前在構建文件的共同目標。

上面的例子顯示了兩個部署目標 - 部署和deploywar目標

部署目標文件從web目錄下的文件複製到deploy目錄保留最後修改的日期時間戳記。部署到支持熱部署一臺服務器時,這是很有用的。

clean目標清除所有先前建立的文件。

部署war目標構建war文件,然後複製war文件到應用服務器的部署目錄。