创建JAR文件( Creating JAR files)
编译java源文件后的下一个逻辑步骤是构建java归档文件,即JAR文件。 使用jar任务,使用Ant创建JAR文件非常简单。 jar任务的常用属性如下 -
Sr.No. | 属性和描述 |
---|---|
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 反向排除文件。 |
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">
<manifest>
<attribute name = "Main-Class" value = "com.iowiki.util.FaxUtil"/>
</manifest>
</jar>
要执行jar任务,请将其包装在目标(最常见的是构建或包目标)中,然后执行它们。
<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.iowiki.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文件现在放在输出文件夹中。