¿Cuál es el mejor enfoque para sincronizar dos proyectos de Java?

Tengo dos proyectos Java basados ​​en maven, proyecto A y proyecto B. El proyecto A es administrado por un equipo y B por otro equipo. El Proyecto A es un proyecto base cuya biblioteca y classs se consumen en el proyecto B. Actualmente, el equipo del Proyecto A envía un bote de su proyecto al equipo B cada vez que hacen algún cambio en su proyecto y el equipo B tiene que replace el bote viejo con el nuevo uno.

Dado que nuestros proyectos son proyectos basados ​​en maven y administrados como repositorys git, creo que habrá una manera mucho mejor de hacerlo automáticamente, de modo que cada vez que haya un cambio en el proyecto A, el equipo B no tenga que preocuparse por ello y la última los cambios deben reflejarse automáticamente en el equipo B.

Al ver que está usando Maven, el Equipo A debe publicar el Proyecto A en un repository (probablemente uno privado). Equipo B y luego depender del Proyecto A (a través de su POM) y el rest se ocupará de sí mismo, es decir. no más copys manuales de las bibliotecas.

Como beneficio adicional, el Equipo B siempre puede especificar exactamente de qué versión del Proyecto A desean depender.

(La configuration de su propio repository privado no es difícil. El server web de Apache puede alojarlo o puede usar una herramienta como Nexus. Algunas herramientas de compilation (por ejemplo, gradle) generarán un POM y publicarán su biblioteca en un sitio para usted).

Empuje el Proyecto A (jar + pom) a algún repository (Nexus). A continuación, agregue la dependencia en su Project B POM.xml con la versión más reciente.

<distributionManagement> <repository> <id>releases</id> <name>Releases Repository</name> <url> http://localhost:8081/nexus/content/repositories/releases </url> </repository> <snapshotRepository> <id>snapshots</id> <name>Snapshot Repository</name> <url> http://localhost:8081/nexus/content/repositories/snapshots </url> </snapshotRepository> </distributionManagement> 

Agregue lo anterior en el Proyecto A y B

 <dependency> <groupId>mygroup</groupId> <artifactId>C</artifactId></dependency> 

en el Proyecto B agrega lo anterior. Cuando se realiza un cambio nuevo en el Proyecto A, se refleja en B durante la reconstrucción.

Para más Maven