使用Ant進行Web開發 |
|
對于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元素。 |