Java Netbeans,构建时库未打包到 jar 文件中

Java Netbeans, libraries not being packaged into jar file on build

我正在使用 netbeans 并将其放入我的 build.xml 文件中(在项目 > Build.xml 下)

<target name="package-for-store" depends="jar">
<property name="store.jar.name" value="MyProjectName"/>
<property name="store.dir" value="store"/>
<property name="store.jar" value="${store.dir}/${store.jar.name}.jar"/>
<echo message="Packaging ${application.title} into a single JAR at ${store.jar}"/>
<delete dir="${store.dir}"/>
<mkdir dir="${store.dir}"/>

<jar destfile="${store.dir}/temp_final.jar" filesetmanifest="skip">
    <zipgroupfileset dir="dist" includes="*.jar"/>
    <zipgroupfileset dir="dist/lib" includes="*.jar"/>
    <manifest>
        <attribute name="Main-Class" value="${main.class}"/>
    </manifest>
</jar>

<zip destfile="${store.jar}">
    <zipfileset src="${store.dir}/temp_final.jar"
    excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA"/>
</zip>

<delete file="${store.dir}/temp_final.jar"/>

据说这应该做的是将我拥有的 3 个库打包到我的 jar 文件中,这样当 jar 是 运行 时它有它的依赖关系。

我的文件夹系统是这样的:

项目/dist/lib/

但是当我在 netbeans 中单击 "Clean and Build" 时,它不会将库打包到 jar 中,相反它似乎忽略了我放入 build.xml 文件中的代码。

是否需要单击某些按钮才能使用我的构建配置?

终于找到答案了。在 Netbeans 中,可以在 jar 文件中构建依赖库。

Netbeans 有一个工具可以自动解压缩依赖库并将它们包含在 jar 中(例如 MyJar.jar|org\apache\commons...)。

而且其实很容易做到!

  • 首先,您需要单击左上角 window 中显示您的项目的 "Files" 选项卡。然后,您应该能够看到所有文件,包括 Build.xml(您在其中放置了构建代码,例如上述问题中的代码)。

  • 右击Build.xml文件然后select"Run Target"

  • 然后在弹出的菜单中选择"Other Target"

  • 然后在进一步弹出的菜单中select"package-for-store"

这将构建您的 jar 文件,依赖项位于 /YourProject/store/