2009-09-08 17 views
5

Tengo una situación en la que hay una pequeña porción de código Java que tiene una gran cantidad de jarras de las que depende. Sin embargo, las dependencias dentro de estos frascos son muy superficiales. En la mayoría de los casos, solo depende de un jar para una sola interfaz.Java Minimize Dependencies

En lugar de distribuir todos los frascos con la aplicación, me gustaría simplemente distribuir los archivos de clase específicos dentro de los frascos que realmente usa. La razón para esto es conservar espacio (este código vivirá en un applet).

¿Alguien sabe de una herramienta o método para hacerlo automáticamente? Suponiendo que todas las dependencias son estáticas, esto parece completamente posible. ¿Algunas ideas?

Respuesta

5

Classdepandjar desforrará una base de código para las clases esenciales. Se usa en el mundo de Jini para entregar frascos de tamaño óptimo, pero no hay nada específico de Jini al respecto.

Disponible como una tarea Ant.

3

Por lo que yo sé, esto es Maven solamente, pero es un buen comienzo

Maven Shade Plugin: Este plugin proporciona la capacidad para empaquetar el artefacto en una súper-jar, incluyendo sus dependencias y de sombra - es decir, cambiar el nombre - los paquetes de algunas de las dependencias.

2

ProGuard encoge/optimiza y también ofusca. Creo que puedes configurarlo para hacer solo una o la otra.