编译Java源文件后的下一个合乎逻辑的步骤,是建立在Java归档,JAR文件。创建JAR文件与Ant用jar任务很容易。以下展示的是jar任务的常用属性
属性 | 描述 |
---|---|
basedir | The base directory for the output JAR file. By default, this is set to the base directory of the project. |
compress | Advises ant to compress the file as it creates the JAR file. |
keepcompression | While the compress attribute is applicable to the individual files, thekeepcompression attribute does the same thing, but it applies to the entire archive. |
destfile | The name of the output JAR file |
duplicate | Advises Ant on what to do when duplicate files are found. You could add, preserve or fail the duplicate files. |
excludes | Advises Ant to not include these comma separated list of files in the package. |
excludesfile | Same as above, except the exclude files are specified using a pattern. |
inlcudes | Inverse of excludes |
includesfile | Inverse of excludesfile. |
update | Advises ant to overwrite files in the already built JAR file. |
继续我们的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的类文件。
在这个例子中,我们创建了一个名为util.jar使用的类从faxapp.util一个jar文件。*包。然而,我们不包括用名称测试结束课程。输出的jar文件会发生在webapp的lib文件夹。
如果我们想使util.jar一个可执行JAR文件,我们需要添加清单与主Classmeta属性。
因此,上面的例子将被更新为:
<jar destfile="${web.dir}/lib/util.jar" basedir="${build.dir}/classes" includes="faxapp/util/**" excludes="**/Test.class"> <manifest> <attribute name="Main-Class" value="com.yiibai.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.yiibai.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文件放置在输出文件夹。