课程表

Apache Ant课程

工具箱
速查手册

Ant 生成 JAR 文件

当前位置:免费教程 » 软件/图像 » Apache Ant

编译完你的 java 源文件后,接下来就构建 java 存档,例如: JAR 文件。创建 Ant 中的 JAR 文件十分简单,运用 jar 任务来生成 jar 包。在 jar 任务中常用的属性如下所示:

属性描述
basedir表示输出 JAR 文件的基目录。默认情况下,为项目的基目录。
compress表示告知 Ant 对于创建的 JAR 文件进行压缩。
keepcompression表示 project 基目录的绝对路径。
destfile表示输出 JAR 文件的名字。
duplicate表示发现重复文件时 Ant 执行的操作。可以是添加、保存、或者是使该重复文件失效。
excludes表示移除的文件列表,列表中使用逗号分隔多个文件。
excludesfile与上同,但是使用模式匹配的方式排除文件。
inlcudes与 excludes 正好相反。
includesfile表示在被归档的文件模式下,打包文件中已有的文件。与 excludesfile 相反。
update表示告知 Ant 重写已经建立的 JAR 文件。

继续我们的 Hello World 传真应用项目,通过添加一个新的目标 target 来产生 jar 文件。 但是在此之前,让我们先来考虑下面给出的 jar 任务。

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

这里,web.dir 属性指出了 web 源文件的路径。在我们的案例中, web 源文件路径也就是存放 util.jar 的地方。

在我们的案例中,build.dir 属性指出了配置文件夹的存储路径,也就是存放 util.jar 类文件的地方。

在上面的代码中,我们利用来自 faxapp.util 包中的类文件创建了一个名为 util.jar 的 jar 包。然而,我们排除名字为 Test 的类文件。输出的 jar 文件将会存放在 web 应用的配置文件 lib 中。

如果我们想 util.jar 成为可执行文件,只需在 Main-Class 元属性中加入manifest.

这样,上面给出的代码,在加入 Main-Class 元属性后,可以更新为如下形式:

  1. <jar destfile = "${web.dir}/lib/util.jar"
  2. basedir = "${build.dir}/classes"
  3. includes = "faxapp/util/**"
  4. excludes = "**/Test.class">
  5. <manifest>
  6. <attribute name = "Main-Class" value = "com.tutorialspoint.util.FaxUtil"/>
  7. </manifest>
  8. </jar>

为了执行 jar 任务,将它包装在目标 target 中,最常见的情况是,将 jar 任务包装在配置目标或者打包目标中(build 目标或 package 目标),并执行包装后的目标。

  1. <target name="build-jar">
  2. <jar destfile="${web.dir}/lib/util.jar"
  3. basedir="${build.dir}/classes"
  4. includes="faxapp/util/**"
  5. excludes="**/Test.class">
  6. <manifest>
  7. <attribute name="Main-Class" value="com.tutorialspoint.util.FaxUtil"/>
  8. </manifest>
  9. </jar>
  10. </target>

在上述文件上运行 Ant ,就能创建出 util.jar。

上述文件运行 Ant 后,得到以下的输出:

  1. C:\>ant build-jar
  2. Buildfile: C:\build.xml
  3. BUILD SUCCESSFUL
  4. Total time: 1.3 seconds

最后得到的输出 util.jar 将被存储在输出文件夹中。

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号