Tôi đang sử dụng Maven-Shade-Plugin để tạo ra một Uber-jar có thể chạy được. Theo khung cuối cùng trên this page, kích thước của bình có thể được giảm thiểu bằng cách sử dụng:Giảm thiểu một Uber Jar đúng cách, Sử dụng Shade-Plugin
<configuration>
<minimizeJar>true</minimizeJar>
</configuration>
Nhưng tính năng này không đi vào xem xét các lớp được khai báo trong file log4j.properties. Do đó, ví dụ: org.apache.log4j.appender.TimeAndSizeRollingAppender
không được bao gồm trong Uber-jar, mặc dù nó được khai báo trong tệp log4j.properties.
Tôi tin rằng tôi sẽ đối mặt với cùng một vấn đề với Spring. Nếu mã của tôi chỉ đề cập đến giao diện A và tệp Spring của tôi chứa một instantiation của lớp B thực hiện A, thì B có thể không được thêm vào jar, vì nó không có trong mã.
Làm cách nào để giải quyết vấn đề này?
Alsmot, nhưng không hoàn toàn, một bản sao của http://stackoverflow.com/questions/8698814/configure-maven-shade-minimizejar-to-include-class-files – Raedwald