NetBeans 8.0.2教程:如何创建包含所有依赖库与源代码的可执行JAR文件
如何在NetBeans的自定义打包JAR中包含源代码
当然可以实现把源代码包含进你的JAR文件里!你的package-for-store目标已经在合并主JAR和依赖库了,只需要添加几行配置就能把源码也加进去。
修改步骤:
NetBeans默认的源代码目录是src(如果你的项目结构不同,调整下面的路径即可),你只需要在<jar>任务中添加一个<fileset>来包含所有.java文件。
修改后的package-for-store目标:
<target name="package-for-store" depends="jar"> <!-- Change the value of this property to be the name of your JAR, minus the .jar extension. It should not have spaces. <property name="store.jar.name" value="MyJarName"/> --> <property name="store.jar.name" value="SendMail"/> <!-- don't edit below this line --> <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"/> <!-- 新增:包含项目源代码 --> <fileset dir="src" includes="**/*.java"/> <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>
可选优化:
如果希望源代码在JAR里有独立的目录结构(比如都放在src子目录下,避免和class文件混在一起),可以给<fileset>加上prefix属性:
<fileset dir="src" includes="**/*.java" prefix="src"/>
验证:
执行修改后的package-for-store目标后,打开生成的JAR文件,你就能看到所有的.java源代码文件已经被包含进去了。
内容的提问来源于stack exchange,提问作者Jeniffer Lorena Guillen Castro
相关产品推荐
相关产品推荐

