2011-08-05 22 views
13

Chúng tôi có một dự án nhỏ với một số phụ thuộc trọng lượng nặng (ví dụ: Mùa xuân) mà chúng tôi chỉ sử dụng các bộ phận nhỏ. Vì vậy, JAR chúng tôi nhận được khi đóng gói với tất cả các phụ thuộc nặng vài megabyte, ngay cả đối với máy chủ hai lớp. Điều này có vẻ không cần thiết.Loại trừ các phần phụ thuộc không sử dụng từ bình (Maven)

Có cách nào để hạn chế việc lắp ráp JAR với các tệp (lớp) thực sự được sử dụng không?

Trả lời

9

Bạn có thể sử dụng maven-shade-plugin để tạo Jar-with-dependencies (dự án của bạn và các phụ thuộc được hợp nhất thành một jar lớn) trong khi giới hạn các lớp hoặc gói được thêm vào jar đó. Xem includes/excludes page để tham khảo.

Nếu bạn không muốn chỉ định thủ công những gì cần được bao gồm, có lẽ có cách để tích hợp ProGuard với bản dựng của bạn.

+0

Tôi tìm thấy rất nhiều tài liệu tham khảo hữu ích trên trang web ProGuard, cảm ơn bạn! Ngay cả khi Maven không thể làm điều này tự động (xấu hổ), có vẻ như là hy vọng với các công cụ khác. – Raphael

+4

Plugin maven bóng râm giờ đây cho phép lọc tự động qua cấu hình ' true ' – harschware

+0

Tôi vừa thử nó trên một dự án và nó cắt kích thước của tôi là 36%, không cần cấu hình bổ sung. – harschware

2

Không thể chỉ bao gồm các lớp được sử dụng. Nhưng bạn có thể exclude dependencies from your depencies để giảm kích thước JAR. Chỉ có nhược điểm: bạn cần phải biết những gì bạn có thể loại trừ và những gì không.

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