Thông thường, khi build project trong Netbeans sẽ tạo file jar trong /dist. Tuy nhiên nếu project có các gói library ngoài thì các gói class này sẽ được build trong /dist/lib/.. Như vậy nếu muốn chạy file jar trong /dist thì buộc phải có thư mục /lib đi kèm --> rất bất tiện.
Thủ thuật sau sẽ giúp tạo 1 file jar duy nhất cho project.
Mở file build.xml của project trong netbeans, copy đoạn code sau vào dưới cùng (trước tag đóng project):
Khi nào muốn build thì click chuột phải vào file build.xml chọn Run Target --> Other target --> fat-jar. File jar sẽ được lưu trong thư mục /fat-jar của project.
Một cách khác đó là thay đổi trực tiếp -post-jar trong build.xml như sau:
Khi đó chỉ việc build project là đoạn -post-jar sẽ được thực hiện. Trong đoạn trên chỗ thêm thư viện ngoài là attribute zipfileset, nếu muốn thêm nhiều thư viện thì có thể dùng attribute zipgroupfileset với dir="path_to_lib" includes="*.jar"
Thủ thuật sau sẽ giúp tạo 1 file jar duy nhất cho project.
Mở file build.xml của project trong netbeans, copy đoạn code sau vào dưới cùng (trước tag đóng project):
- <target name="fat-jar" 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="fat-jar.name" value="jar_name"/>
- <!-- don't edit below this line -->
- <property name="fat-jar.dir" value="fat-jar"/>
- <property name="fat-jar.jar" value="${fat-jar.dir}/${fat-jar.name}.jar"/>
- <echo message="Packaging ${application.title} into a single JAR at ${fat-jar.jar}"/>
- <delete dir="${fat-jar.dir}"/>
- <mkdir dir="${fat-jar.dir}"/>
- <jar destfile="${fat-jar.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="${fat-jar.jar}">
- <zipfileset src="${fat-jar.dir}/temp_final.jar"
- excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA"/>
- </zip>
- <delete file="${fat-jar.dir}/temp_final.jar"/>
- </target>
Khi nào muốn build thì click chuột phải vào file build.xml chọn Run Target --> Other target --> fat-jar. File jar sẽ được lưu trong thư mục /fat-jar của project.
Một cách khác đó là thay đổi trực tiếp -post-jar trong build.xml như sau:
- <target name="-post-jar">
- <jar jarfile="dist/Combined-dist.jar">
- <zipfileset src="${dist.jar}" excludes="META-INF/*" />
- <zipfileset src="lib/commons-io-1.4.jar" excludes="META-INF/*" />
- <manifest>
- <attribute name="Main-Class" value="com.example.mypackage.Main"/>
- </manifest>
- </jar>
- </target>
Khi đó chỉ việc build project là đoạn -post-jar sẽ được thực hiện. Trong đoạn trên chỗ thêm thư viện ngoài là attribute zipfileset, nếu muốn thêm nhiều thư viện thì có thể dùng attribute zipgroupfileset với dir="path_to_lib" includes="*.jar"
Đăng nhận xét