Ant 简明教程

Ant - Creating JAR files

在编译完 java 源文件后的下一个逻辑步骤,就是构建 java 存档,即 Java 存档 (JAR) 文件。用 Ant 创建 JAR 文件非常容易,只需要 jar 任务。

Attributes

jar 任务常用的属性如下 −

Sr.No

Attributes & Description

1

basedir 输出 JAR 文件的基本目录。默认情况下,此目录设置为项目的基本目录。

2

compress 建议 Ant 在创建 JAR 文件时压缩该文件。

3

keepcompression 虽然 compress 属性适用于单个文件,但是 keepcompression 属性会执行同样的操作,但它适用于整个文档。

4

destfile 输出 JAR 文件的名称。

5

duplicate 当找到重复文件时,建议 Ant 执行什么操作。你可以添加、保留或让重复文件失败。

6

excludes 建议 Ant 不要在包中包含这些逗号分隔的文件列表。

7

excludesfile 与上述相同,不同之处在于排除文件是使用模式指定的。

8

inlcudes Inverse of excludes.

9

includesfile Inverse of excludesfile.

10

update 建议 Ant 覆盖已生成的 JAR 文件中的文件。

续我们的 Hello World 传真应用程序项目,让我们添加一个新目标来生成 jar 文件。

但是在这样做之前,我们考虑一下给定以下 jar 任务。

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

在这里, web.dir 属性指向 Web 源文件的路径。在我们的案例中,这会放置 util.jar 的位置。

此示例中的 build.dir 属性指向 build 文件夹,此文件夹中可以找到 util.jar 的类文件。

在此示例中,我们使用 faxapp.util. * 包中的类创建了一个名为 util.jar 的 jar 文件。但是,我们会排除以 Test 名称结尾的类。输出 jar 文件将被放置在 Web 应用程序 lib 文件夹中。

如果我们要使 util.jar 成为可执行 jar 文件,需要使用带有 Main-Class 元属性的 manifest

因此,上面的示例将更新如下:

<jar destfile="${web.dir}/lib/util.jar"
   basedir="${build.dir}/classes"
   includes="faxapp/util/**"
   excludes="**/Test.class" class="ts"
   <manifest class="ts"
      <attribute name="Main-Class" value="com.tutorialspoint.util.FaxUtil"/>
   </manifest class="ts"
</jar class="ts"

要执行 jar 任务,请将其包装到目标内,最常见的是 build 或 package 目标,然后执行它们。

<target name="build-jar" class="ts"
<jar destfile="${web.dir}/lib/util.jar"
   basedir="${build.dir}/classes"
   includes="faxapp/util/**"
   excludes="**/Test.class" class="ts"
   <manifest class="ts"
      <attribute name="Main-Class" value="com.tutorialspoint.util.FaxUtil"/>
   </manifest class="ts"
</jar class="ts"
</target class="ts"

在此文件中运行 Ant 会为我们创建 util.jar 文件。

运行 Ant 文件后,会产生以下结果 −

C:\ class="ts"ant build-jar
Buildfile: C:\build.xml

BUILD SUCCESSFUL
Total time: 1.3 seconds

util.jar 文件现在放置在输出文件夹中。