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

生成 JAR 文件

編譯完你的 java 源文件后,接下來就構(gòu)建 java 存檔,例如: JAR 文件。創(chuàng)建 Ant 中的 JAR 文件十分簡(jiǎn)單,運(yùn)用 jar 任務(wù)來生成 jar 包。在 jar 任務(wù)中常用的屬性如下所示:

屬性 描述
basedir 表示輸出 JAR 文件的基目錄。默認(rèn)情況下,為項(xiàng)目的基目錄。
compress 表示告知 Ant 對(duì)于創(chuàng)建的 JAR 文件進(jìn)行壓縮。
keepcompression 表示 project 基目錄的絕對(duì)路徑。
destfile 表示輸出 JAR 文件的名字。
duplicate 表示發(fā)現(xiàn)重復(fù)文件時(shí) Ant 執(zhí)行的操作??梢允翘砑?、保存、或者是使該重復(fù)文件失效。
excludes 表示移除的文件列表,列表中使用逗號(hào)分隔多個(gè)文件。
excludesfile 與上同,但是使用模式匹配的方式排除文件。
inlcudes 與 excludes 正好相反。
includesfile 表示在被歸檔的文件模式下,打包文件中已有的文件。與 excludesfile 相反。
update 表示告知 Ant 重寫已經(jīng)建立的 JAR 文件。

繼續(xù)我們的 Hello World 傳真應(yīng)用項(xiàng)目,通過添加一個(gè)新的目標(biāo) target 來產(chǎn)生 jar 文件。 但是在此之前,讓我們先來考慮下面給出的 jar 任務(wù)。

<jar destfile = "${web.dir}/lib/util.jar"
   basedir = "${build.dir}/classes"
   includes = "faxapp/util/**"
   excludes = "**/Test.class" />

這里,web.dir 屬性指出了 web 源文件的路徑。在我們的案例中, web 源文件路徑也就是存放 util.jar 的地方。

在我們的案例中,build.dir 屬性指出了配置文件夾的存儲(chǔ)路徑,也就是存放 util.jar 類文件的地方。

在上面的代碼中,我們利用來自 faxapp.util 包中的類文件創(chuàng)建了一個(gè)名為 util.jar 的 jar 包。然而,我們排除名字為 Test 的類文件。輸出的 jar 文件將會(huì)存放在 web 應(yīng)用的配置文件 lib 中。

如果我們想 util.jar 成為可執(zhí)行文件,只需在 Main-Class 元屬性中加入manifest.

這樣,上面給出的代碼,在加入 Main-Class 元屬性后,可以更新為如下形式:

<jar destfile = "${web.dir}/lib/util.jar"
   basedir = "${build.dir}/classes"
   includes = "faxapp/util/**"
   excludes = "**/Test.class">

   <manifest>
      <attribute name = "Main-Class" value = "com.tutorialspoint.util.FaxUtil"/>
   </manifest>

</jar>

為了執(zhí)行 jar 任務(wù),將它包裝在目標(biāo) target 中,最常見的情況是,將 jar 任務(wù)包裝在配置目標(biāo)或者打包目標(biāo)中(build 目標(biāo)或 package 目標(biāo)),并執(zhí)行包裝后的目標(biāo)。

<target name="build-jar">
   <jar destfile="${web.dir}/lib/util.jar"
      basedir="${build.dir}/classes"
      includes="faxapp/util/**"
      excludes="**/Test.class">

      <manifest>
         <attribute name="Main-Class" value="com.tutorialspoint.util.FaxUtil"/>
      </manifest>

   </jar>
</target>

在上述文件上運(yùn)行 Ant ,就能創(chuàng)建出 util.jar。

上述文件運(yùn)行 Ant 后,得到以下的輸出:

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

BUILD SUCCESSFUL
Total time: 1.3 seconds

最后得到的輸出 util.jar 將被存儲(chǔ)在輸出文件夾中。