Tengo dos módulos A y B. Actualy B es un complemento a A.
B depende de A en tiempo de compilación. A no depende de B. En un tiempo de ejecución Quiero añadir a la ruta de clase B, por lo que en pom.xml de un añado la siguiente dependenciaámbito de tiempo de ejecución de Maven y dependencia cíclica
pom.xml
<dependency>
<groupId>my_group</groupId>
<artifactId>my_Plugin</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
proceso de Maven con el error dependencia cíclica
[ERROR] The projects in the reactor contain a cyclic reference: Edge between 'Vertex{label='A'}' and 'Vertex{label='B'}' introduces to cycle in the graph B-->A-->B -> [Help 1]
[ERROR]
Por qué impacto dependencia de tiempo de ejecución de tiempo de compilación?
Hay un buen enfoque para organizar su construcción para este tipo de proyecto. Si refactoriza el código que está compartido en otro módulo (C), el proyecto B ya no necesitará depender de A en tiempo de compilación. A y B pueden ambos depender de C. Entonces no es un problema que A dependa de B en tiempo de ejecución. Una buena forma de pensar en esto es considerar escribir una biblioteca, un grupo de código compartido, y una aplicación, que es una colección de bibliotecas ensambladas. Un proyecto de aplicación en realidad no necesita contener ningún código. – Conan