版權(quán)聲明:可以任意轉(zhuǎn)載,轉(zhuǎn)載時請務(wù)必以超鏈接形式標(biāo)明文章原始出處和作者信息及本聲明
英文原文地址:
http://www.onjava.com/pub/a/onjava/excerpt/AntTDG_chap8/index.html中文地址:
http://www.matrix.org.cn/resource/article/43/43596_Ant_web.html關(guān)鍵詞:Ant web deploy WAR Manifest
編輯語:本文是Ant: The Definitive Guide, 2nd Edition的摘錄的兩部分當(dāng)中的第一部分,作者Steve Holzner介紹了web application的打包。并將于下周對第二部分做出修改,它將會介紹WEB 應(yīng)用程序的部署,包括get, serverdeploy, 和 scp。
使用Ant進(jìn)行Web開發(fā),第二部分:
http://www.matrix.org.cn/resource/article/43/43742_Ant_Web.html對于Ant開發(fā)者來說開發(fā)Web就好像面包與黃油一樣。在你的配置當(dāng)中包含一系列的任務(wù):第四章中我們將會介紹對應(yīng)用包括Web應(yīng)用的打包和部署的方法,包括移動,復(fù)制,ftp,telnet,sshesec,和mail等任務(wù)。Ant提供給我們的工具比我們提高的更多。這一章中我們將會介紹針對Web應(yīng)用打包的方法,包括deploy,reload,和undeploy等任務(wù)。第九章中將會介紹更多關(guān)于EJB的Ant任務(wù)。
建立WAR文件War任務(wù)是jar任務(wù)的一個擴(kuò)展,它將Web應(yīng)用程序打進(jìn).war文件當(dāng)中,通過特殊的方法,文件將會被放置到服務(wù)器的WEB-INF/lib, WEB-INF/classes 和 WEB-INF目錄當(dāng)中。舉例來說,當(dāng)用戶在編譯工程之后產(chǎn)生以下的目錄布局:
war
|____output
| login.class
| logout.class
|
|____source
| login.xml
|
|____html
welcome.xml
例8-1當(dāng)中使用的build文件將會把你需要部署的應(yīng)用創(chuàng)建在.war文件當(dāng)中,將.class文件放入WEB-INF/classes目錄,重新命名login.xml,web.xml文件,并將其放入WEB-INF目錄當(dāng)中,以及其它任務(wù)。
例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 文件如下所示:
%ant
Buildfile: build.xml
main:
[war] Building war: /home/steven/ant/ch08/war/login.war
BUILD SUCCESSFUL
Total time: 2 seconds
通過上面的命令,我們建立了.war文件。除了將指定文件打包之外,Ant同時在.war文件當(dāng)中提供了一個缺省的清單文件,Manifest.mf。這個文件包含下面的內(nèi)容:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.1
Created-By: 1.4.2_03-b02 (Sun Microsystems Inc.)
在建立.war文件之后,用戶可以將它部署到web服務(wù)器的部署目錄下,例如Tomcat服務(wù)器上的webapps目錄。
在表8-1中列出了war任務(wù)的屬性:
小技巧:war任務(wù)是一種指定.war文件部署的快捷方式。在使用zip或者jar任務(wù)時,使用不同的前綴(prefix)和完整路徑(fullpath)可以達(dá)到與war任務(wù)同樣的效果。
表8-1. war 任務(wù)屬性列表
war任務(wù)可以包含像fileset及zipfileset這些指定在.war文件中應(yīng)該包含有什么文件的元素。war任務(wù)可以通過這些元素來指定各種文件應(yīng)該放在什么地方:
-webinf元素里面的文件,放在WEB-INF路徑下
-classes元素里面的文件,放在WEB-INF/classes路徑下
l-ib元素里面的文件,放在WEB-INF/lib路徑下
-metainf元素里面的文件,放在META-INF路徑下
建立CAB文件cab任務(wù)的作用是建立Microsoft.cab 檔案文件,cab任務(wù)的使用方法類似于jar或是zip任務(wù)。.cab文件相當(dāng)于.NET系統(tǒng)的.war文件,用于部署.NET應(yīng)用程序到服務(wù)器。這個任務(wù)在Windows環(huán)境下使用外部工具cabarc(Microsoft提供)工作,cabarc必須包含在執(zhí)行路徑當(dāng)中。
鑒于Microsoft Visual Studio IDE已經(jīng)提供了很多強(qiáng)有力集成工具和向?qū)斫?cab文件,我們不打算在這里花太多的時間;大多數(shù)的Microsoft開發(fā)者也不使用Ant來解決他們的構(gòu)建問題。提供一個使用Ant cab任務(wù)的建立例子:
<cab cabfile="${deploy}/app.cab" basedir="${output}" />
小技巧:你可以免費(fèi)的得到Microsoft C#的命令行編輯器,csc, 如果你的Windows并沒有包含這個工具,你可以安裝.NET Framework‘s Software Development Kit (SDK)(可以在http://msdn.microsoft.com/downloads上得到)。csc的編譯器被包含在這個SDK當(dāng)中。
表 8-2. The cab 任務(wù)屬性列表
用戶可以使用嵌套的fileset元素來指定想要包含在文檔當(dāng)中的文件。相對于其他Ant任務(wù)來說這個任務(wù)形成一個隱含的FileSet,同時支持fileset元素(dir成為basedir)的所有屬性,包括嵌套的元素include,exclude和patternset元素。
Steve Holzner 是O‘Reilly‘s upcoming Eclipse: A Java Developer‘s Guide的作者gracepig是(
Matrix.org.cn)的會員,可以通過zhangchi_nwpu@hotmail.com和他聯(lián)系。