所以我的项目结构如下 - :
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>
P的POM没有依赖关系,只有父 - : 父
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:reactor中的项目包含循环引用:
'B'和'A'之间的边缘在图A-> parent-&gt; B-&gt; A
中引入循环我做错了什么以及我应该如何构建项目?我希望将所有内容保存在一个地方。
答案 0 :(得分:1)
您应该将父插件中的插件声明移动到pluginManagement
标记中,以便您可以设置版本(但实际上不使用它),然后在需要插件的单个项目中,只需命名插件在plugins
标记中。
此外,如果A
取决于B
,则B
无法使用插件A
。对不起,不能做;你需要找到一种方法让一个人没有另一个。另外,我不认为B
可以将自己用作插件,因为在它甚至可以开始构建B
之前必须解决它。 C
以及任何其他模块(D
,E
等)可以使用B
。