Mi proyecto está compuesto por 5 subproyectos. Una es una guerra, y las otras 4 son jarras. Básicamente, el proyecto de guerra necesita los 4 proyectos jar y sus dependencias.Cómo manejar las dependencias de subproyectos en Maven
Puedo quitar las dependencias para tener algo así como war-> A-> B-> C-> D. Cada proyecto secundario agrega su cuota de dependencias externas (resorte, puntales, hibernación) para que al final la guerra obtenga todo lo que necesita para ejecutarse.
Esto se ve muy bien organizado y cuadrado, pero luego me pregunto si esto es muy práctico para hacer cambios.
Imagine que tengo que cambiar una línea de código en el proyecto D, sin cambiar nada a sus dependencias Maven. Tendría que volver a lanzar el proyecto D obviamente, pero luego tengo que volver a lanzar los proyectos C, B, A y la guerra solo para reflejar este cambio en sus archivos pom. Esto puede ser largo y molesto, especialmente si tiene que lanzar rápidamente una nueva versión para arreglar algo en producción.
Podría hacer depender la guerra de los 4 proyectos, entonces solo tengo que cambiar el número de versión del proyecto D en el archivo pom de guerra. Pero luego tengo el proyecto A que depende indirectamente del proyecto D 1.0 y el proyecto que especifica la guerra D 1.1. Creo que la dependencia directa de la guerra ganaría en ese caso, ¿no?
Esto haría que el lanzamiento de la nueva guerra fuera más rápido, pero también arruinaría las dependencias de mis proyectos secundarios, ya que estarían desactualizados.
¿Cuál sería una forma aceptable de manejar esta situación?
hola Gweebz. Gracias por la respuesta detallada. No es necesario que cada subproyecto se publique individualmente, por lo que le daré una buena mirada a este concepto de agregador que no conocía. Los módulos contienen todos los códigos comerciales y de datos, y están sujetos a cambios periódicos. Otra solución sería excluir las dependencias transitivas como dijiste, no pensé en eso. Gracias por la luz sobre esto. – IceGras
Sin necesidad de liberar cada módulo de forma independiente, recomiendo usar la solución Aggregator. Su patrón es el ajuste perfecto para su escenario. Me alegro de poder ayudar :) –