2011-08-05 18 views
13

Mamy mały projekt z pewnymi zależnościami ciężkimi (np. Wiosna), z których używamy tylko małych części. Dlatego JAR, który otrzymujemy podczas pakowania ze wszystkimi zależnościami waży kilka megabajtów, nawet dla serwera z dwiema klasami. Wydaje się to niepotrzebne.Wyklucz nieużywane części zależności ze słownika (Maven)

Czy istnieje sposób ograniczenia zbioru JAR do faktycznie używanych (klasy) plików?

Odpowiedz

9

Można użyć maven-shade-plugin, aby utworzyć zależność JAR-Z (Twój projekt i zależności połączone w jeden duży jar), jednocześnie ograniczając klasy lub pakiety dodawane do tego słoika. Zobacz numer includes/excludes page w celach informacyjnych.

Jeśli nie chcesz ręcznie określać, co należy uwzględnić, być może istnieje sposób integracji ProGuard z kompilacją.

+0

Znalazłem wiele przydatnych referencji na stronie ProGuard, dziękuję! Nawet jeśli Maven nie jest w stanie zrobić tego automatycznie (wstyd), wydaje się, że istnieje nadzieja z innymi narzędziami. – Raphael

+4

Wtyczka maven shade umożliwia automatyczne filtrowanie poprzez ' true' konfiguracja – harschware

+0

Po prostu wypróbowałem to na projekcie i zmniejszyłem rozmiar słoika o 36%, nie potrzebowałem żadnej dodatkowej konfiguracji. – harschware