Cuando tiene un proyecto de varios módulos y está trabajando en varios módulos al mismo tiempo, puede ser tedioso y propenso a errores para asegurarse de que se actualicen todas las dependencias necesarias.
En mi situación, me gustaría que mi sistema de compilación detecte cambios y solo cree los módulos que sean necesarios. Una forma de que esto sea posible con maven es que alguien escriba un complemento personalizado que haga esto, lo cual no parece insuperable, dado que ya hay complementos complejos disponibles, como el complemento de lanzamiento Maven.
Otros ya han mencionado el concepto de agregación pom, que es repetible y produce los artefactos necesarios. Pero a veces terminas construyendo más de lo que realmente necesitas.
perfiles de Maven pueden ayudar y aquí hay un buen artículo al respecto:
Using Aggregate and Parent POMs
También tenga en cuenta en el artículo el concepto de la pom lotes, lo que no estaba previamente en cuenta.
Recuerde, mvn clean install empujará su artefacto a su repositorio local. Entonces, si el módulo A depende del módulo B, siempre que su repositorio local tenga la última compilación del módulo B, entonces debe estar todo listo. Por lo tanto, si hubiera una herramienta externa que observara los cambios en el módulo B y los construyera automáticamente cuando los hubiera y los insertará en el repositorio local, cuando el módulo A se reconstruya, retomará esos cambios.Existen herramientas de integración continua (CI) que pueden hacer esto, como Jenkins. Pero necesitaría una instalación local para tener este trabajo directamente con su repositorio local. Todavía es una opción, sin embargo.
Otra opción sería que el entorno de CI transfiera sus compilaciones a un repositorio maven externo (o incluso uno que configure localmente con algo como Nexus). Luego, configura sus compilaciones de CI para extraerlas de esa ubicación también.
Por lo tanto, existen soluciones que dependen de otras herramientas o complementos potenciales para hacer lo que desee; solo depende de cuánto tiempo y esfuerzo desee invertir para configurarlo todo. Pero, una vez que supere ese obstáculo, tendrá un sistema (y conocimiento y experiencia) que podrá usar en todos sus proyectos, sin mencionar que estará familiarizado con la cantidad de tiendas/equipos de desarrollo que trabajan.
Recomendaría investigar la integración continua y la entrega continua para obtener más información e ideas.
Puede hacerlo a través de la línea de comandos de maven - p. 'mvn compile -pl projectA -am'. Esta [pregunta SO] (http://stackoverflow.com/questions/9167015/how-to-compile-dependency-in-maven) debería ayudar. – amaidment