2012-04-06 13 views
6

Tengo un archivo jar grande que tiene muchas dependencias en otros archivos jar ~ 40 archivos que suman unos cientos de MB. Me preocupan los problemas de dependencias con este archivo jar, por lo que me gustaría agregar las dependencias necesarias al archivo Manifest de este jar en el momento de la compilación. Me pregunto si hay desventajas negativas en este enfoque. He hecho algunas pruebas sobre los tiempos de carga de clases y realmente no parecen estar afectados tanto.Impactos de incluir demasiados archivos jar en classpath

Otra razón por la que quiero mover las dependencias al manifiesto del jar es que con tantos archivos la línea de comandos se hace larga y difícil de leer. Tenemos un montón de opciones -XX, etc., que también pasamos a la JVM, pero parece que no hay forma de establecerlas en el manifiesto o en algún tipo de archivo de configuración.

+0

Personalmente, siempre usaría una secuencia de comandos trivial para iniciar el programa en lugar de escribir manualmente todas las opciones y archivos jar (ugh). Eso resuelve todos los problemas a la vez, aunque no hay nada realmente en contra de agregar los frascos en el manifiesto. – Voo

+0

Voo - Gracias por el comentario. Actualmente uso una secuencia de comandos y mis dos problemas son que cuando se miran los procesos en ejecución, llega a un punto en el que cada instancia de Java ocupa casi una ventana de terminal completa. En segundo lugar, otros pueden usar este contenedor y pueden invocarlo como lo deseen. Yo preferiría si hay un enlace entre la compilación y el tiempo de ejecución. – john

Respuesta

3

Si depende de estos frascos, entonces está bien. 40 dependencias no es mucho, en realidad, así que no lo consideren un problema. Solo asegúrate de no incluir dependencias no utilizadas.

+0

No veo por qué los deps sin usar causarían ningún problema. Claro que explotan un poco el tamaño (y son innecesarios), pero dado que el cargador de clases es flojo, no veo por qué eso sería un gran problema. – Voo

+0

Creo que ese es probablemente el quid de mi pregunta. Vincular las dependencias en el jar definitivamente significará tener jarras sin usar. Dependiendo de cómo se usa el frasco, es posible que muchos no se ejerzan. Sé que en casos como este dividir el frasco sería ideal. Lamentablemente, esa no es una opción en este caso. – john

Cuestiones relacionadas