編譯完你的 java 源文件后,接下來(lái)就構(gòu)建 java 存檔,例如: JAR 文件。創(chuàng)建 Ant 中的 JAR 文件十分簡(jiǎn)單,運(yùn)用 jar 任務(wù)來(lái)生成 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)目,通過(guò)添加一個(gè)新的目標(biāo) target 來(lái)產(chǎn)生 jar 文件。 但是在此之前,讓我們先來(lái)考慮下面給出的 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 類文件的地方。
在上面的代碼中,我們利用來(lái)自 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ǔ)在輸出文件夾中。
更多建議: