Ant 生成 JAR 文件
编译完你的 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 任务。
<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 属性指出了配置文件夹的存储路径,也就是存放 util.jar 类文件的地方。
在上面的代码中,我们利用来自 faxapp.util 包中的类文件创建了一个名为 util.jar 的 jar 包。然而,我们排除名字为 Test 的类文件。输出的 jar 文件将会存放在 web 应用的配置文件 lib 中。
如果我们想 util.jar 成为可执行文件,只需在 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>为了执行 jar 任务,将它包装在目标 target 中,最常见的情况是,将 jar 任务包装在配置目标或者打包目标中(build 目标或 package 目标),并执行包装后的目标。
<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>在上述文件上运行 Ant ,就能创建出 util.jar。
上述文件运行 Ant 后,得到以下的输出:
C:\>ant build-jar
Buildfile: C:\build.xml
BUILD SUCCESSFUL
Total time: 1.3 seconds最后得到的输出 util.jar 将被存储在输出文件夹中。