
- 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 - 使用令牌
- ANT - 使用命令列引數
- ANT - 使用If Else語句
- ANT - 自定義元件
- ANT - 監聽器和記錄器
- Apache ANT 資源
- ANT - 快速指南
- ANT - 有用資源
- ANT - 討論
Ant - 專案構建
現在我們已經學習了Ant中的資料型別,是時候將這些知識付諸實踐了。本章我們將構建一個專案。本章的目標是構建一個Ant檔案,編譯Java類並將它們放置在WEB-INF\classes資料夾中。
考慮以下專案結構:
資料庫指令碼儲存在db資料夾中。
Java原始碼儲存在src資料夾中。
影像、js、META-INF、樣式(css)儲存在war資料夾中。
Java伺服器頁面(JSP)儲存在jsp資料夾中。
第三方jar檔案儲存在lib資料夾中。
Java類檔案儲存在WEB-INF\classes資料夾中。
本專案構成本教程其餘部分的Hello World傳真應用程式。
C:\work\FaxWebApplication>tree Folder PATH listing Volume serial number is 00740061 EC1C:ADB1 C:. +---db +---src . +---faxapp . +---dao . +---entity . +---util . +---web +---war +---images +---js +---META-INF +---styles +---WEB-INF +---classes +---jsp +---lib
以下是本專案所需的build.xml檔案。讓我們逐段來看。
<?xml version="1.0"?> <project name="fax" basedir="." default="build"> <property name="src.dir" value="src"/> <property name="web.dir" value="war"/> <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="build" description="Compile source tree java files"> <mkdir dir="${build.dir}"/> <javac destdir="${build.dir}" source="1.5" target="1.5"> <src path="${src.dir}"/> <classpath refid="master-classpath"/> </javac> </target> <target name="clean" description="Clean output directories"> <delete> <fileset dir="${build.dir}"> <include name="**/*.class"/> </fileset> </delete> </target> </project>
首先,讓我們宣告一些用於原始碼、web和構建資料夾的屬性。
<property name="src.dir" value="src"/> <property name="web.dir" value="war"/> <property name="build.dir" value="${web.dir}/WEB-INF/classes"/>
在上例中:
src.dir 指的是專案的原始碼資料夾,其中包含Java原始檔。
web.dir 指的是專案的web原始碼資料夾,其中包含JSP、web.xml、css、javascript和其他web相關檔案。
build.dir 指的是專案編譯的輸出資料夾。
屬性可以引用其他屬性。如上例所示,build.dir屬性引用了web.dir屬性。
在本例中,src.dir指的是專案的原始碼資料夾。
我們專案預設的目標是compile目標。但首先,讓我們看看clean目標。
clean目標顧名思義,刪除構建資料夾中的檔案。
<target name="clean" description="Clean output directories"> <delete> <fileset dir="${build.dir}"> <include name="**/*.class"/> </fileset> </delete> </target>
master-classpath包含類路徑資訊。在本例中,它包括構建資料夾中的類和lib資料夾中的jar檔案。
<path id="master-classpath"> <fileset dir="${web.dir}/WEB-INF/lib"> <include name="*.jar"/> </fileset> <pathelement path="${build.dir}"/> </path>
最後,構建目標用於構建檔案。
首先,我們建立構建目錄(如果不存在),然後執行javac命令(指定jdk1.5作為我們的目標編譯)。我們將原始碼資料夾和類路徑提供給javac任務,並要求它將類檔案放入構建資料夾中。
<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>
在這個檔案中執行Ant會編譯Java原始檔並將類檔案放置在構建資料夾中。
執行Ant檔案後的結果如下:
C:\>ant Buildfile: C:\build.xml BUILD SUCCESSFUL Total time: 6.3 seconds
檔案被編譯並放置在build.dir資料夾中。