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/
- commons-lang3-3-7.jar
- commons-text-1.1.jar
- jsoup-1.10.3.jar
但是当我在 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/
我正在使用 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/
- commons-lang3-3-7.jar
- commons-text-1.1.jar
- jsoup-1.10.3.jar
但是当我在 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/