Fra*_*ank 35 netbeans jar package
我正在使用一些apache HttpClient jar,所以我将它们放在我的项目的lib目录中,当Netbeans编译项目时,它复制lib并生成一个项目jar到dist目录,但当我用webstart运行我的项目时,我需要将项目jar和lib复制到tomcat的ROOT目录中,我想知道Netbeans是否可以生成包含lib目录中所有jar的项目jar,所以我不必将项目jar和lib目录复制到tomcat的ROOT目录中.Netbeans能做到吗?
Abd*_*rai 77
将每个依赖库(*.jar)打包到一个单独的myProject.jar中非常容易.
只需按照这些步骤操作,您最终将每个依赖库打包到单个jar中.如果您正在使用NetBeans,那么您可以完全遵循,否则您需要在项目文件中找到您的build.xml文件.
请按照以下步骤编辑build.xml
1)单击Files tabNetBeans中项目面板的左侧.
2)双击build.xml文件并</project>在行前添加这些行
<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>
Run Code Online (Sandbox Code Playgroud)
3)value根据您的项目名称更改代码的第二行
<property name="store.jar.name" value="myProject"/> //<---Just value not name
Run Code Online (Sandbox Code Playgroud)
4)保存并右键单击build.xml并选择Run Target,然后选择Other Targets,最后单击Package-for-store
5)在这里你完成了.现在您可以像dist文件夹一样检查,将会有一个store文件夹,其中包含您的最终完整jar,包括所有依赖库.现在,无论何时想要更改/添加更多库,只需按照步骤4进行操作即可.
步骤4的图片

Fra*_*ank 10
好的,在以下网站找到答案:http://arunasujith.blogspot.com/2011/08/how-to-build-fat-jar-using-netbeans.html
Robert Eckstein描述了这个问题的解决方案.您只需要将以下代码粘贴到build.xml.这些库都是自动找到的.
开始了:
<target name="-post-jar">
<!-- Change the value to the name of the final jar without .jar -->
<property name="store.jar.name" value="MyJarName"/>
<!-- don't edit below this line -->
<property name="store.dir" value="dist"/>
<property name="temp.dir" value="temp"/>
<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="${temp.dir}"/>
<mkdir dir="${temp.dir}"/>
<jar destfile="${temp.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>
<delete dir="${store.dir}"/>
<zip destfile="${store.jar}">
<zipfileset src="${temp.dir}/temp_final.jar"
excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA"/>
</zip>
<delete dir="${temp.dir}"/>
</target>
Run Code Online (Sandbox Code Playgroud)
转到build.xml,并在结束时关闭项目标记之前添加代码.
现在更改第一个属性字段的值作为注释
单击"清理并生成",您的jar将位于dist文件夹中
参考链接:https: //stackoverflow.com/a/30172829/2761273
| 归档时间: |
|
| 查看次数: |
62796 次 |
| 最近记录: |