
- 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 - 建立WAR檔案
使用 Ant 建立 Web 歸檔 (WAR) 檔案非常簡單,並且與建立 JAR 檔案的任務非常相似。畢竟,WAR 檔案就像 JAR 檔案一樣,只是另一個 ZIP 檔案。
WAR 任務是 JAR 任務的擴充套件,但它有一些很好的補充,可以用來操作 WEB-INF/classes 資料夾中的內容,以及生成 web.xml 檔案。WAR 任務可用於指定 WAR 檔案的特定佈局。
由於 WAR 任務是 JAR 任務的擴充套件,因此 JAR 任務的所有屬性都適用於 WAR 任務。
序號 | 屬性及描述 |
---|---|
1 | webxml web.xml 檔案的路徑。 |
2 | lib 一個分組,用於指定放入 WEB-INF\lib 資料夾中的內容。 |
3 | classes 一個分組,用於指定放入 WEB-INF\classes 資料夾中的內容。 |
4 | metainf 指定生成 MANIFEST.MF 檔案的指令。 |
繼續我們的Hello World傳真應用程式專案,讓我們新增一個新的目標來生成 jar 檔案。但在那之前,讓我們考慮一下 war 任務。
請考慮以下示例:
<war destfile="fax.war" webxml="${web.dir}/web.xml"> <fileset dir="${web.dir}/WebContent"> <include name="**/*.*"/> </fileset> <lib dir="thirdpartyjars"> <exclude name="portlet.jar"/> </lib> <classes dir="${build.dir}/web"/> </war>
根據前面的示例,web.dir 變數指的是源 Web 資料夾,即包含 JSP、css、javascript 檔案等的資料夾。
build.dir 變數指的是輸出資料夾。這是 WAR 包的類可以找到的位置。通常,這些類將打包到 WAR 檔案的 WEB-INF/classes 資料夾中。
在此示例中,我們正在建立一個名為fax.war的 war 檔案。WEB.XML 檔案是從 Web 原始檔夾中獲取的。Web 下“WebContent”資料夾中的所有檔案都複製到 WAR 檔案中。
WEB-INF/lib 資料夾填充了來自 thirdpartyjars 資料夾的 jar 檔案。但是,我們排除了 portlet.jar,因為它已經存在於應用程式伺服器的 lib 資料夾中。最後,我們從 build 目錄的 web 資料夾複製所有類,並將它們放入 WEB-INF/classes 資料夾中。
將 war 任務包裝在 Ant 目標(通常為 package)中並執行它。這將在指定位置建立 WAR 檔案。
完全有可能巢狀 classes、lib、metainf 和 webinf 目錄,以便它們位於專案結構中的任何分散資料夾中。但是,最佳實踐建議您的 Web 專案應具有與 WAR 檔案結構類似的 Web 內容結構。傳真應用程式專案使用此基本原理概述了其結構。
要執行 war 任務,請將其包裝在一個目標中,最常見的是 build 或 package 目標,然後執行它們。
<target name="build-war"> <war destfile="fax.war" webxml="${web.dir}/web.xml"> <fileset dir="${web.dir}/WebContent"> <include name="**/*.*"/> </fileset> <lib dir="thirdpartyjars"> <exclude name="portlet.jar"/> </lib> <classes dir="${build.dir}/web"/> </war> </target>
在此檔案上執行 Ant 將為我們建立fax.war檔案。
以下結果是執行 Ant 檔案的結果:
C:\>ant build-war Buildfile: C:\build.xml BUILD SUCCESSFUL Total time: 12.3 seconds
fax.war 檔案現在放置在輸出資料夾中。war 檔案的內容將如下所示:
fax.war: +---jsp This folder contains the jsp files +---css This folder contains the stylesheet files +---js This folder contains the javascript files +---images This folder contains the image files +---META-INF This folder contains the Manifest.Mf +---WEB-INF +---classes This folder contains the compiled classes +---lib Third party libraries and the utility jar files WEB.xml Configuration file that defines the WAR package