provided mvn exclude example dependency conflicts maven dependencies cyclic

mvn - cómo resolver la dependencia cíclica maven



maven resolve dependency conflicts (2)

Crear un nuevo proyecto es, de hecho, una solución.

Dependency Inversion es la segunda solución posible.

Consulte here el Principio de Dependencia Acíclica.

Y here para el Principio de Inversión de Dependencia.

¿Cómo podemos resolver una dependencia cíclica maven? Supongamos que A es el proyecto principal y B y C son proyectos secundarios. Si B depende de C y C depende de B, ¿hay alguna forma de resolver la dependencia cíclica que no sea tener un proyecto diferente?

Gracias de antemano, he buscado en los foros, pero no pude obtener la solución exacta. Por favor, avíseme si hay alguna posibilidad.


Maven no permite dependencias cíclicas entre proyectos, porque de lo contrario no está claro qué proyecto construir primero. Entonces necesitas deshacerte de este ciclo. Una solución es la que ya mencionó para crear otro proyecto. Otra sería mover algunas clases de B a C o viceversa cuando esto ayude. O a veces es correcto fusionar el proyecto B y C en un proyecto si no es necesario tener dos.

Pero sin saber y analizar por qué sus proyectos dependen el uno del otro, es un poco difícil sugerir la mejor solución.

Así que sugiero que pueda usar herramientas como JDepend o la herramienta de análisis InteliJ para encontrar sus clases problemáticas y, en base a ellas, encontrar un mejor diseño para su software.

La mayoría de las veces, creo algo así como un módulo de interfaz y un módulo de implementación, que elimina la mayoría de los ciclos.