9

我有两个模块 A 和 B。实际上 B 是 A 的插件
。B 在编译时依赖于A。A 不依赖于 B。在 A 运行时我想将 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]

[错误]

为什么运行时依赖会影响编译时间?

4

1 回答 1

1

正如柯南所建议的那样,如果可能的话,将您的通用代码提取到一个单独的模块中以解决循环问题。通常,在这种情况下,人们会将公共接口和核心类提取到一个单独的模块中,该模块由两个模块扩展,这会导致循环依赖。然后,您将删除对最初处于循环状态的模块的直接依赖关系。有时这很难解决,但是将代码模块化可以帮助您弄清楚如何重构代码,使其易于重用。

于 2012-07-04T09:39:06.777 回答