Netbeans - 使用Ant将资源文件添加到jar文件中

5

我希望在使用Netbeans 6.9的Java项目中,通过Ant将一些资源文件(非代码文本文件)添加到jar文件中。虽然我认为这应该是相当简单的...但查找了很多后,我仍然不知道怎么做...!请问有没有指导方向的建议?

2个回答

11

我认为我正在寻找的答案如下:

在build.xml文件中(根据trashgod的答案),您可以使用ant构建脚本中已经存在的钩子来添加以下内容:

<target name="-post-jar">
    <echo>Adding files to jar...</echo>
    <jar destfile="dist/jarFileName.jar" update="true">
        <fileset dir="${basedir}">
            <include name="files/*"/>
        </fileset>
    </jar>
</target>

这将直接将文件目录及其下任何文件添加到jar文件中。


2
如果您选择文件>项目属性>构建>打包,您将看到一个对话框,让您排除构建中的工件;其他所有内容都包含在源树中。 TreeIconDemo的源代码是一个具体的示例,其中包括html文件。
对于更高级的任务,请查看新创建的项目生成的默认build.xml;它标识了预定义任务的各种钩子。例如,
存在几个默认为空的目标,可以用来执行您的任务。这些目标通常在一些主要目标之前和之后执行。他们是:
-pre-init:在初始化项目属性之前调用 -post-init:在初始化项目属性之后调用 -pre-compile:在javac编译之前调用 -post-compile:在javac编译之后调用 -pre-compile-single:在单个文件的javac编译之前调用 -post-compile-single:在单个文件的javac编译之后调用 -pre-compile-test:在JUnit测试的javac编译之前调用 -post-compile-test:在JUnit测试的javac编译之后调用 -pre-compile-test-single:在单个JUnit测试的javac编译之前调用 -post-compile-test-single:在单个JUunit测试的javac编译之后调用 -pre-jar:在构建JAR之前调用 -post-jar:在构建JAR之后调用 -post-clean:清理构建产品后调用
补充说明:作为一个示例,此目标覆盖-post-compile以打印一些统计信息。
<project name="TreeIconDemo" default="default" basedir=".">
    <import file="nbproject/build-impl.xml"/>
    <target name="-post-compile">
        <echo>build.dir: ${build.dir}</echo>
        <length mode="all" property="build.size">
            <fileset dir="${build.dir}">
              <include name="**/*"/>
            </fileset>
        </length>
        <echo>build.size: ${build.size}</echo>
    </target>
</project>

输出:

$ ant compile
构建文件: build.xml
...
-post-compile:
     [echo] 构建目录: build
     [echo] 构建大小: 11992
编译:
构建成功

谢谢trashgod。我已经看到了构建过程中的钩子...但我不确定如何使用它们,并且对不同的网站和博客等感到困惑!您能否提供一个示例,说明如何使用适当的钩子将目录fileDir下的文件data.txt包含在根目录下的jar文件中,位置相同? - Alistair Collins
@Alistair Collins:我已经详细说明了。 - trashgod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接