所以我有一个项目,结构如下-:
pom.xml
---Module A (Child)
---Module B (Maven child plugin with Dependency on A)
---Module C (Child Dependency on A)
---Plugin B
父pom看起来像下面的
<modules>
<module>A</module>
<module>B</module>
<module>C</module>
</modules>
<plugins>
<plugin>
B
</plugin>
</plugins>
POM for A没有依赖项,只有父级-:母
B的POM具有
<parent>parent</parent>
<dependencies>
<dependency>A</dependency>
</dependencies>
C的POM也有
<parent>parent</parent>
<dependencies>
<dependency>A</dependency>
</dependencies>
有了以上内容,maven给了我以下错误-:
org.apache.maven.ProjectCycleException:反应器中的项目包含一个循环引用:
"B"one_answers"A"之间的边引入图中的循环A->parent->B->
我做错了什么?我应该如何构建项目?我想把所有东西都放在一个地方。
您应该将父级内部的插件声明移动到pluginManagement
标记中,以便设置版本(但不实际使用),然后在需要插件的单个项目中,只需在plugins
标记中命名插件即可。
此外,如果B
依赖于A
,则A
不能使用插件B
。对不起,不能做;你需要找到一种方法,让其中一个不需要另一个。此外,我不认为B
可以将自己用作插件,因为在开始构建B
之前,必须解决这个问题。C
和任何其他模块(D
、E
等)可以使用B
。