2010-04-27 20 views

Trả lời

20

Chắc chắn, điều đó hoàn toàn có thể. Ant Jar task có thể làm bất cứ điều gì mà dòng lệnh jar có thể thực hiện. Bạn làm điều đó với cờ update được đặt thành true thay vì sai.

<jar destfile="/x/y/z/file.jar" 
     basedir="https://stackoverflow.com/a/b/c/" 
     update="true" 
    /> 

Nơi mà bình đích đã tồn tại ở đường dẫn đó.

EDIT: Để thiết lập một con đường

<jar destfile="/x/y/z/file.jar" 
     update="true"> 
     <zipfileset dir="https://stackoverflow.com/a/b/c"/ prefix="x/y/z" /> 
    </jar> 
+0

Làm thế nào để công việc hoạt động cập nhật? Cụ thể, nếu tôi có tệp được đặt trong a/b/c/* mà tôi muốn thêm vào tệp jar x/y/z/* thì có thể không? – predhme

+0

Vâng, chắc chắn là có thể. Hãy nhớ rằng - jar chỉ là một zip chuyên biệt (cho thực). Nếu bạn nhìn vào tác vụ Ant zip, zip thậm chí có một ví dụ cập nhật. Vì vậy, nếu bạn tưởng tượng rằng "filesToAdd" trong ví dụ của tôi là/a/b/c * và destfile là x/y/z/file.jar, bạn sẽ có thể làm cho nó hoạt động. Đừng tin tôi? Sao chép x/y/z/file.jar ở đâu đó và thử nó với một kịch bản kiến ​​thử nghiệm và kiểm tra công việc của tôi :). – justkt

+0

Để làm rõ. Giả sử tôi có một cấu trúc tập tin của x/y/z trong tập tin jar ban đầu của tôi. Tôi có một số tệp bổ sung trong a/b/c mà tôi muốn thêm vào z. Bản cập nhật sẽ chỉ thêm a/b/c vào tệp jar gốc. Hoặc tôi có thể chỉ định đường dẫn tệp được sử dụng khi thêm không? – predhme

8

Bạn sẽ có thể thực hiện việc này với Jar Task nếu bạn đặt update thành true.

<jar update="true" jarfile="${jarfile}" > 
    <!-- ... --> 
</jar> 
Các vấn đề liên quan