2009-04-18 40 views
5

Hãy nói rằng tôi có một ivy.xml chứa sau:Làm thế nào để bạn cấu hình Apache Ivy để loại bỏ hiện vật mồ côi?

<dependency org="checkstyle" name="checkstyle" rev="4.3" /> 

Và sau đó tôi muốn nâng cấp lên Checkstyle 4.4, vì vậy tôi thay đổi ivy.xml tôi để chứa:

<dependency org="checkstyle" name="checkstyle" rev="4.4" /> 

Sau một retrieve với cấu hình đầu tiên, tôi có tập tin checkstyle-4.3.jar. Sau cấu hình thứ hai, tôi cũng có tệp checkstyle-4.4.jar và tệp checkstyle-4.3.jar vẫn tồn tại.

Có cách nào để Ivy nhận ra rằng tệp cũ là một đứa trẻ mồ côi, và xóa nó khỏi thư mục lib? Ý tưởng là tôi không muốn sử dụng không gian đĩa của các nhà phát triển của tôi để tăng đáng kể mỗi khi tôi nâng cấp một công cụ.

Lý tưởng nhất là tôi cũng muốn xóa nó khỏi kho lưu trữ cục bộ. Tôi nhận ra rằng mục đích của kho lưu trữ cục bộ là nó được chia sẻ giữa các dự án, vì vậy nó sẽ không có ý nghĩa để loại bỏ bất cứ điều gì, vì nó sẽ không biết nếu hiện vật vẫn còn được sử dụng trong các dự án khác. Nhưng phải có một số loại thủ tục tỉa ...

Trả lời

9

Tôi đã sử dụng Ivy 2.0.0, vì vậy tôi không biết điều này có áp dụng cho phiên bản bạn đang sử dụng hay không.

Nhiệm vụ Ivy retrieve có thuộc tính sync. Đặt điều này thành true và các tệp không sử dụng/không xác định trong thư mục đã truy xuất của bạn (lib trong trường hợp của bạn) sẽ bị xóa. Lưu ý rằng điều này có nghĩa là bất kỳ hiện vật được sao chép thủ công nào trong thư mục này mà Ivy không giải quyết cụ thể sẽ bị xóa.

Ngoài ra, lưu ý rằng nếu bạn sử dụng tùy chọn sync nhưng Ivy không giải quyết phụ thuộc (trống hoặc thiếu ivy.xml, ví dụ), thư mục truy xuất sẽ bị xóa.

+0

Đó chính xác là những gì tôi đang tìm kiếm, cảm ơn! Nhân tiện, tôi đang sử dụng 2.1.0-RC1. –

+0

Nhân tiện, tôi đã xác định rằng điều này không xóa các mục khỏi bộ nhớ cache. Vì vậy, lợi ích là bạn sẽ không có nhiều phiên bản của cùng một jar trong thư mục lib của bạn (điều quan trọng), nhưng bạn sẽ không tiết kiệm được nhiều không gian đĩa. Một ivy thường xuyên: cleancache sẽ làm công việc đó. –

Các vấn đề liên quan