Tôi đang trong quá trình đóng gói ứng dụng java của mình vào tệp jar. Tôi đang sử dụng kiến và nhật thực. Tôi cần phải thực sự bao gồm trong jar một vài tập tin riêng biệt, không mã (tập tin xml và txt) trực tiếp dưới thư mục gốc, không phải trong cùng một vị trí như mã.thêm tài nguyên không mã vào tệp jar bằng cách sử dụng Ant
Tôi cố gắng để sử dụng includesfile, nhưng điều đó dường như không làm việc, đây là mục tiêu kiến của tôi:
<target name="distribute" depends="compile" includesfile="readthis.txt">
<jar destfile="${distributionDir}/myjar.jar" >
<fileset dir="${outputDir}"/>
<fileset dir="${sourceDir}"/>
</jar>
</target>
Trên đây hoạt động tốt khi tôi bỏ qua đối số includesfile. Ngoài ra, tôi cần thêm nhiều tệp không phải mã. Các tệp này được đặt trực tiếp trong thư mục gốc của dự án trong Eclipse, và không nằm trong bất kỳ gói java nào.
Ngoài ra, như bạn có thể thấy ở trên, về cơ bản tôi cũng bao gồm cả mã nguồn của mình nữa. Có cách nào để nói cho các nhiệm vụ jar để đặt mã nguồn trong một thư mục riêng biệt từ mã biên dịch?
Là một nhiệm vụ biên dịch hoặc xây dựng, Ant dễ dàng có thể tách mã nguồn khỏi các lớp được biên dịch. Nhưng có cách nào để làm điều đó trong một tệp jar không?
Rất cám ơn vì đã dành thời gian của bạn!
Cảm ơn! Điều đó chắc chắn đã giúp. Tôi đã tự hỏi nếu tôi cũng có thể nói với nhiệm vụ jar để tách nguồn từ các lớp biên dịch? Tại thời điểm này, cả nguồn và các lớp đều nằm trong cùng một cấu trúc gói, nên tác vụ jar có bảo toàn thư mục đầu ra và thư mục src không? Có nghĩa là khi tôi mở rộng bình, tôi thấy trong myjar/code/my/package/file.java và file.class Tôi nghĩ rằng tác vụ jar có thể bảo toàn các thư mục như: myjar/code/my/package /source/file.java - và riêng biệt myjar/code/my/package/build/file.class Tôi có thiếu thứ gì đó trong việc sử dụng tác vụ jar của tôi không? – denchr
Không, bạn không chính xác. Họ nên được side-by-side. Nếu jar chứa một cấu trúc thư mục như code/my/package/build/file.class, thì điều đó có nghĩa là tên gói phải là code.my.package.build. Bạn cũng có thể chỉ cần đưa các nguồn vào một tệp JAR thứ hai. –
Tôi hiểu ý của bạn là gì. Vì vậy, nói chung, Nếu tôi muốn bao gồm nguồn trong tệp jar của tôi, nó * có * ở trong cùng thư mục với bản dựng được biên dịch. – denchr