在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 物聯(lián)網(wǎng)/ 生成 WAR 文件
生成 WAR 文件
JUnit 集成
環(huán)境搭建
Eclipse 集成
部署應(yīng)用
屬性任務(wù)
擴(kuò)展 Ant
?# 執(zhí)行 Java 代碼
構(gòu)建項(xiàng)目
構(gòu)建文件
數(shù)據(jù)類型
生成 JAR 文件
生成文檔
屬性文件
封裝應(yīng)用
介紹

生成 WAR 文件

使用 Ant 創(chuàng)建 WAR 文件是極其簡(jiǎn)單的。這與創(chuàng)建 JAR 文件任務(wù)非常類似。 畢竟,WAR 文件與 JAR 文件只是兩種不同的 ZIP 文件。

WAR 任務(wù)是 JAR 任務(wù)的一個(gè)擴(kuò)展,但是其對(duì)控制哪些文件進(jìn)入 WEB-INF/classes 文件夾和生成 web.xml 文件進(jìn)行了一些很好的補(bǔ)充。WAR 任務(wù)對(duì)指定 WAR 文件布局是非常有用的。

既然 WAR 任務(wù)是 JAR 任務(wù)的一個(gè)擴(kuò)展,JAR 任務(wù)的所有的屬性都適用于 WAR 任務(wù)。

屬性 描述
webxml web.xml 文件的路徑
lib 指定什么文件可以進(jìn)入 WEB-INF\lib 文件夾的一個(gè)組
classes 指定什么文件可以進(jìn)入 WEB-INF\classes 文件夾的一個(gè)組
metainf 指定生成 MANIFEST.MF 文件的指令

繼續(xù)我們的 Hello World 傳真應(yīng)用項(xiàng)目,讓我們添加一個(gè)新的目標(biāo)來(lái)生成 jar 文件。 但是在此之前,我們需要考慮一下 war 任務(wù)。 請(qǐng)看下面的例子:

<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 文件夾下。

在這個(gè)例子中,我們創(chuàng)建了一個(gè)名為 fax.war 的 war 文件。WEB.XML 文件可以從 web 源文件中獲取。 所有 web 下來(lái)自 “WebContent” 的文件都被復(fù)制到 WAR 文件中。

WEB-INF/lib 文件夾中存儲(chǔ)了來(lái)自于第三方 jar 文件夾中的 jar 文件。但是,我們排除了 portlet.jar,因?yàn)樵?jar 文件已經(jīng)存在于應(yīng)用服務(wù)器的 lib 文件夾中了。最后,我們從一個(gè)構(gòu)建目錄下的 web 文件夾中復(fù)制所有的類,并將復(fù)制的類全部放入 WEB-INF/classes 文件夾下。

將一個(gè) war 任務(wù)封裝到一個(gè) Ant 任務(wù)中并運(yùn)行它。 這將在指定位置創(chuàng)建一個(gè) WAR 文件。

類,庫(kù),metainf 和 webinf 目錄完全可以進(jìn)行嵌套以使得他們都能存在于項(xiàng)目結(jié)構(gòu)下分散的文件夾中。 但是最佳的實(shí)踐建議是,你的 web 項(xiàng)目的 web 內(nèi)容架構(gòu)應(yīng)該與 WAR 文件類似。 傳真應(yīng)用項(xiàng)目的架構(gòu)就是使用了這個(gè)基本原理。

要執(zhí)行 war 任務(wù),將其封裝在一個(gè)目標(biāo)里面,最常見的是,構(gòu)建目標(biāo)或者是包目標(biāo),然后運(yùn)行它們。

<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>

在這個(gè)文件上運(yùn)行 Ant 會(huì)替我們創(chuàng)建 fax.war 文件。

下述的輸出就是運(yùn)行 Ant 文件的結(jié)果:

>C:\>ant build-war
>Buildfile: C:\build.xml

>BUILD SUCCESSFUL
>Total time: 12.3 seconds

該 fax.war 文件當(dāng)前被放置在輸出文件夾中。war 文件的內(nèi)容如下所示:

>fax.war:
   >+---jsp :這個(gè)文件夾包含了 jsp 文件
   >+---css :這個(gè)文件夾包含了 stylesheet 文件
   >+---js :這個(gè)文件夾包含了  javascript 文件
   >+---images:這個(gè)文件夾包含了  image 文件
   >+---META-INF:這個(gè)文件夾包含了  Manifest.Mf
   >+---WEB-INF
           >+---classes :這個(gè)文件夾包含了編譯好的類
          >+---lib :第三方庫(kù)和使用程序 jar 文件
          >WEB.xml :定義 WAR 包的配置文件