Tôi có một tệp xây dựng Ant cho một thư viện Java. Có vẻ như sau:Làm cách nào để thay đổi thư mục đích của lệnh fileset của Ant?
<project ... ><target ... >
<jar destfile="C:\path\to\export.jar">
<manifest> ... </manifest>
<fileset dir="C:\path\to\bin" />
<fileset dir="C:\path\to\src" />
<fileset dir="C:\path\to\doc" />
<zipfileset src="C:\path\to\included\library.jar" />
</jar>
</target></project>
Vấn đề duy nhất là JavaDoc của tôi đang được xuất trực tiếp vào thư mục gốc của tệp jar kết quả. Điều cần thiết, tôi muốn một số tương đương với lệnh <copydir>
có thể được sử dụng bên trong lệnh <jar>
.
cấu trúc của tôi mong muốn là thế này:
export.jar
META-INF
Manifest.MF
com
example
whatever
Blah.class
Blah.java
org
external
somelibrary
Magic.class // contents of the included library jar file
doc
// javadoc files here
Cấu trúc hiện nay là:
export.jar
META-INF
Manifest.MF
com
example
whatever
Blah.class
Blah.java
// some javadoc files here
org
external
somelibrary
Magic.class // contents of the included library jar file
// more javadoc files here
My hiện "giải pháp" là để bỏ qua các lệnh tài liệu <fileset>
, sau đó, khi jar đã xuất, đi vào Windows Explorer và nhấp chuột phải → 7-Zip → Mở Lưu trữ; Sau đó tôi có thể thả thư mục doc
vào đó. Tuy nhiên, điều này khá hoàn toàn đánh bại mục đích của Ant như một hệ thống xây dựng hoàn toàn tự động.
Nếu nó quan trọng, tệp này ban đầu được tạo bởi Eclipse với nhà xuất khẩu JAR Runnable. Tuy nhiên, tôi rõ ràng cần phải sửa đổi nó để thêm các tệp nguồn, v.v ... vì nó là một thư viện và không thực sự là một cái bình runnable. Tôi đã xuất khẩu nó như là một jar có thể chạy được để đưa Eclipse vào gói trong các thư viện cần thiết; dường như các thư viện trên đường dẫn xây dựng không có sẵn để xuất qua tiêu chuẩn Tệp → Xuất → Tệp JAR.
Tôi biết rằng một jar sử dụng nén zip. Tuy nhiên, thư mục 'doc' của tôi không phải là một tệp nén, chỉ là một thư mục. theo Eclipse, không có thuộc tính 'prefix' trên lệnh' fileset'. – wchargin
'zipfileset' có thể được sử dụng theo hai cách. Một như một tập tin trong một tập tin zip. Một như là một tập tin để được bao gồm trong một zip (hoặc một cái lọ, điều này là như nhau). Điều cuối cùng là dành cho trường hợp sử dụng của bạn. Đọc các dòng đầu tiên của tài liệu mà tôi đã chỉ ra trong câu trả lời của mình. –
Cảm ơn! Nếu bạn không nhớ tôi sẽ chỉnh sửa câu trả lời của bạn để bao gồm một mẫu mã. – wchargin