- Apache ANT 教程
- ANT - 首頁
- ANT - 簡介
- ANT - 環境設定
- ANT - 構建檔案
- ANT - 屬性任務
- ANT - 屬性檔案
- ANT - 資料型別
- ANT - 構建專案
- ANT - 構建文件
- ANT - 建立 JAR 檔案
- ANT - 建立 WAR 檔案
- ANT - 打包應用程式
- ANT - 部署應用程式
- ANT - 執行 Java 程式碼
- ANT - Eclipse 整合
- ANT - JUnit 整合
- ANT - 擴充套件 Ant
- Apache ANT 常用示例
- ANT - 使用 Token
- ANT - 使用命令列引數
- ANT - 使用 If Else 語句
- ANT - 自定義元件
- ANT - 監聽器和日誌記錄器
- Apache ANT 資源
- ANT - 快速指南
- ANT - 有用資源
- ANT - 討論
Ant - 打包應用程式
我們已經分階段學習了使用Hello World Fax Web 應用程式的 Ant 的不同方面。
現在,是時候將所有內容整合在一起,建立一個完整且完整的 build.xml 檔案了。請考慮如下所示的build.properties 和build.xml 檔案:
build.properties
build.properties 檔案如下所示:
deploy.path=c:\tomcat6\webapps
build.xml
build.xml 檔案如下所示:
<?xml version="1.0"?>
<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"/>
</fileset>
<pathelement path="${build.dir}"/>
</path>
<target name="javadoc">
<javadoc packagenames="faxapp.*" sourcepath="${src.dir}"
destdir="doc" version="true" windowtitle="Fax Application">
<doctitle><![CDATA[<h1>= Fax Application =</h1>]]></doctitle>
<bottom><![CDATA[Copyright © 2011. All Rights Reserved.]]></bottom>
<group title="util packages" packages="faxapp.util.*"/>
<group title="web packages" packages="faxapp.web.*"/>
<group title="data packages" packages="faxapp.entity.*:faxapp.dao.*"/>
</javadoc>
</target>
<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>
<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"/>
</javac>
</target>
<target name="deploy" depends="build" description="Deploy application">
<copy todir="${deploy.path}/${name}" preservelastmodified="true">
<fileset dir="${web.dir}">
<include name="**/*.*"/>
</fileset>
</copy>
</target>
<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="**/*.*"/>
</fileset>
</war>
<copy todir="${deploy.path}" preservelastmodified="true">
<fileset dir=".">
<include name="*.war"/>
</fileset>
</copy>
</target>
<target name="clean" description="Clean output directories">
<delete>
<fileset dir="${build.dir}">
<include name="**/*.class"/>
</fileset>
</delete>
</target>
</project>
在上例中:
我們首先在 build 屬性檔案中將 Tomcat 中 webapps 資料夾的路徑宣告為deploy.path 變數。
我們還聲明瞭 Java 檔案的原始檔夾為src.dir 變數。
然後,我們將 Web 檔案的原始檔夾宣告為web.dir 變數。javadoc.dir 是用於儲存 Java 文件的資料夾,build.dir 是用於儲存構建輸出檔案的路徑。
之後,我們宣告 Web 應用程式的名稱,在本例中為fax。
我們還定義了主類路徑,其中包含專案 WEB-INF/lib 資料夾中存在的 JAR 檔案。
我們還在主類路徑中包含build.dir 中存在的類檔案。
Javadoc 目標生成專案所需的 javadoc,而 usage 目標用於列印構建檔案中存在的常用目標。
以上示例顯示了兩個部署目標:deploy 和deploywar。
deploy 目標將檔案從 web 目錄複製到 deploy 目錄,同時保留最後修改的日期時間戳。這在部署到支援熱部署的伺服器時非常有用。
clean 目標清除所有先前構建的檔案。
deploywar 目標構建 war 檔案,然後將 war 檔案複製到應用程式伺服器的 deploy 目錄。
廣告