2011-08-05 20 views
13

Tenemos un proyecto pequeño con algunas dependencias de gran peso (por ejemplo, primavera) de las cuales solo utilizamos piezas pequeñas. Por lo tanto, el JAR que obtenemos al empacar con todas las dependencias pesa varios megabytes, incluso para el servidor de dos clases. Esto parece innecesario.Excluir partes no utilizadas de dependencias de jar (Maven)

¿Hay alguna manera de restringir el ensamblado de JAR a los archivos realmente usados ​​(clase)?

Respuesta

9

Puede usar el maven-shade-plugin para crear un Jar-with-dependencias (su proyecto y las dependencias se fusionaron en un gran jar) al tiempo que limita las clases o paquetes que se agregan a ese jar. Vea el includes/excludes page para referencia.

Si no desea especificar manualmente lo que se debe incluir, quizás haya una forma de integrar ProGuard con su compilación.

+0

Encontré muchas referencias útiles en el sitio ProGuard, ¡gracias! Incluso si Maven no puede hacer esto automáticamente (vergüenza), parece que hay esperanza con otras herramientas. – Raphael

+4

maven shade plugin ahora permite el filtrado automático a través de la configuración ' true' – harschware

+0

Lo probé en un proyecto y me cortó el tamaño de mi jar 36%, no se necesitan configuraciones adicionales. – harschware

2

No se pueden incluir solo las clases que se utilizan. Pero puede exclude dependencies from your depencies para reducir el tamaño de JAR. Único inconveniente: necesita saber qué puede excluir y qué no.

Cuestiones relacionadas