我正在使用一些 apache HttpClient jar,所以我将它们放在项目的 lib 目录中,当 Netbeans 编译项目时,它会复制 lib 并生成项目 jar 到 dist 目录中,但是当我使用 webstart 运行项目时,我需要将项目jar和lib复制到tomcat的ROOT目录中,我想知道Netbeans是否可以生成一个包含lib目录中所有jar的项目jar,这样我就不必将项目jar和lib目录复制到tomcat的ROOT目录中。 Netbeans 能做到吗?
将每个依赖库 (*.jar) 打包到一个 myProject.jar 中确实很容易。
只需按照以下步骤操作,您最终将把每个依赖库打包到一个 jar 中。如果您使用的是 NetBeans,那么您可以完全遵循,否则您需要找到您的构建.xml文件在项目文件中。
请按照以下步骤进行编辑构建.xml
1) 点击Files tab
位于 NetBeans 项目面板的左侧。
2) 双击build.xml
文件并在之前添加这些行</project>
line
<target name="package-for-store" depends="jar">
<property name="store.jar.name" value="myProject"/>
<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"/>
</target>
3)改变value
根据您的项目名称,在代码的第二行中
<property name="store.jar.name" value="myProject"/> //<---Just value not name
4)保存并右键单击构建.xml并选择运行目标进而其他目标最后点击专卖店打包
5) 到这里你就完成了。现在你可以去检查一下dist
文件夹里会有一个store
文件夹将包含最终的完整 jar,其中包括所有依赖库。现在,每当您想要更改/添加更多库等时,只需按照步骤 4 操作即可。
步骤4的图片
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)