對于Ant開發者來說開發Web就好像面包與黃油一樣。在你的配置當中包含一系列的任務:第四章中我們將會介紹對應用包括Web應用的打包和部署的方法,包括移動,復制,ftp,telnet,sshesec,和mail等任務。Ant提供給我們的工具比我們提高的更多。這一章中我們將會介紹針對Web應用打包的方法,包括deploy,reload,和undeploy等任務。第九章中將會介紹更多關于EJB的Ant任務。
建立WAR文件 War任務是jar任務的一個擴展,它將Web應用程序打進.war文件當中,通過特殊的方法,文件將會被放置到服務器的WEB-INF/lib, WEB-INF/classes 和 WEB-INF目錄當中。舉例來說,當用戶在編譯工程之后產生以下的目錄布局:

例8-1當中使用的build文件將會把你需要部署的應用創建在.war文件當中,將.class文件放入WEB-INF/classes目錄,重新命名login.xml,web.xml文件,并將其放入WEB-INF目錄當中,以及其它任務。
例8-1 建立war文件(ch08/war/build/xml)
<?xml version="1.0" encoding="UTF-8" ?>
<project default="main" basedir=".">
<property name="bin" value="output" />
<property name="src" value="source" />
<target name="main">
<war destfile="login.war" webxml="${src}/login.xml">
<fileset dir="${src}/html"/>
<classes dir="${bin}"/>
</war>
</target>
</project>
build 文件如下所示:
%antBuildfile: build.xmlmain:
[war] Building war: /home/steven/ant/ch08/war/login.warBUILD SUCCESSFULTotal time: 2 seconds
通過上面的命令,我們建立了.war文件。除了將指定文件打包之外,Ant同時在.war文件當中提供了一個缺省的清單文件,Manifest.mf。這個文件包含下面的內容:
Manifest-Version: 1.0Ant-Version: Apache Ant 1.6.1Created-By: 1.4.2_03-b02 (Sun Microsystems Inc.)
在建立.war文件之后,用戶可以將它部署到web服務器的部署目錄下,例如Tomcat服務器上的webapps目錄。
在表8-1中列出了war任務的屬性:
小技巧:war任務是一種指定.war文件部署的快捷方式。在使用zip或者jar任務時,使用不同的前綴(prefix)和完整路徑(fullpath)可以達到與war任務同樣的效果。
表8-1. war 任務屬性列表

war任務可以包含像fileset及zipfileset這些指定在.war文件中應該包含有什么文件的元素。war任務可以通過這些元素來指定各種文件應該放在什么地方:
-webinf元素里面的文件,放在WEB-INF路徑下
-classes元素里面的文件,放在WEB-INF/classes路徑下
l-ib元素里面的文件,放在WEB-INF/lib路徑下
-metainf元素里面的文件,放在META-INF路徑下
建立CAB文件 cab任務的作用是建立Microsoft.cab 檔案文件,cab任務的使用方法類似于jar或是zip任務。.cab文件相當于.NET系統的.war文件,用于部署.NET應用程序到服務器。這個任務在Windows環境下使用外部工具cabarc(Microsoft提供)工作,cabarc必須包含在執行路徑當中。
鑒于Microsoft Visual Studio IDE已經提供了很多強有力集成工具和向導來建立.cab文件,我們不打算在這里花太多的時間;大多數的Microsoft開發者也不使用Ant來解決他們的構建問題。提供一個使用Ant cab任務的建立例子:
<cab cabfile="${deploy}/app.cab" basedir="${output}" />
小技巧:你可以免費的得到Microsoft C#的命令行編輯器,csc, 如果你的Windows并沒有包含這個工具,你可以安裝.NET Framework's Software Development Kit (SDK)(可以在http://msdn.microsoft.com/downloads上得到)。csc的編譯器被包含在這個SDK當中。
表 8-2. The cab 任務屬性列表

用戶可以使用嵌套的fileset元素來指定想要包含在文檔當中的文件。相對于其他Ant任務來說這個任務形成一個隱含的FileSet,同時支持fileset元素(dir成為basedir)的所有屬性,包括嵌套的元素include,exclude和patternset元素。