属性
jar 任务的常用属性如下:
序号 |
属性和说明 |
1 |
basedir
输出 JAR 文件的基本目录。默认情况下,这被设置为项目的基本目录。
|
2 |
compress
建议 Ant 在创建 JAR 文件时压缩该文件。
|
3 |
keepcompression
虽然 compress 属性适用于单个文件,但 keepcompression 属性做同样的事情,但它适用于整个档案。
|
4 |
destfile
输出 JAR 文件的名称。
|
5 |
duplicate
建议 Ant 在发现重复文件时如何操作。您可以添加、保留或删除重复文件。
|
6 |
excludes
建议 Ant 不要在包中包含这些以逗号分隔的文件列表。
|
7 |
excludesfile
与上面相同,除了使用模式指定排除文件。
|
8 |
inlcudes
排除的倒数。
|
9 |
includesfile
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属性指向网页源文件的路径。在我们的例子中,这是放置 util.jar 的地方。
这build.dir本例中的属性指向 build 文件夹,其中类文件用于util.jar可以被找寻到。
在此示例中,我们使用来自faxapp.util.*包裹。但是,我们排除了以名称 Test 结尾的类。输出的 jar 文件将放在 Web 应用程序的 lib 文件夹中。
如果我们想让 util.jar 成为可执行的 jar 文件,我们需要添加manifest与Main-Class元属性。
因此,上面的例子将更新如下 -
<jar destfile="${web.dir}/lib/util.jar"
basedir="${build.dir}/classes"
includes="faxapp/util/**"
excludes="**/Test.class" translate="no"
<manifest translate="no"
<attribute name="Main-Class" value="com.jc2182.util.FaxUtil"/>
</manifest translate="no"
</jar translate="no"
要执行 jar 任务,将其包装在一个目标中,最常见的是构建或打包目标,然后执行它们。
<target name="build-jar" translate="no"
<jar destfile="${web.dir}/lib/util.jar"
basedir="${build.dir}/classes"
includes="faxapp/util/**"
excludes="**/Test.class" translate="no"
<manifest translate="no"
<attribute name="Main-Class" value="com.jc2182.util.FaxUtil"/>
</manifest translate="no"
</jar translate="no"
</target translate="no"
在此文件上运行 Ant 会为我们创建 util.jar 文件。
以下结果是运行 Ant 文件的结果 -
C:\ translate="no"ant build-jar
Buildfile: C:\build.xml
BUILD SUCCESSFUL
Total time: 1.3 seconds
util.jar 文件现在位于输出文件夹中。