我有两个模块A和B.Actualy B是A的插件。
B在编译时依赖于A.不依赖于B.
在运行时我想将B添加到类路径中,所以在A的pom.xml中我添加了以下依赖项
pom.xml
<dependency>
<groupId>my_group</groupId>
<artifactId>my_Plugin</artifactId>
<version>${project.version}</version>
<scope>runtime</scope>
</dependency>
Maven进程因循环依赖性错误而失败
[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]
[错误]
为什么运行时依赖性会影响编译时间?
答案 0 :(得分:1)
如Conan所建议的,如果可能的话,将您的公共代码提取到一个单独的模块中以解决循环问题。通常,在这种情况下,可以将公共接口和核心类提取到单独的模块中,该模块由两个模块扩展,这导致循环依赖性。然后,您将删除最初处于循环状态的模块的直接依赖性。有时这很难解决,但模块化代码可以帮助您弄清楚如何重构代码,以便它可以轻松重复使用。