Maven插件子模块的集成测试

时间:2016-01-01 15:59:08

标签: java maven module integration-testing maven-plugin

我有多个子模块的Maven项目。其中一个子模块,假设子模块X依赖于所有其他子模块,因为Maven插件集成了其他所有子模块。

现在我想在我的父POM的verify阶段使用这个Maven插件在整个项目中进行实际操作(有点吃自己的狗食)。

不幸的是我收到了错误:

  

反应堆中的项目包含循环参考

那么如何为Maven Plugin子模块进行这样的dogfood集成测试呢?

2 个答案:

答案 0 :(得分:1)

我会审查聚合和继承:它们确实是Maven中的two different概念,经常组合使用但是也可以以完全分离的方式使用。

在这种情况下,您的插件子模块肯定被定义为聚合器pom中的一个模块(也就是说,它是一个子模块)。但我也假设插件子模块也具有聚合器pom的父pom(也就是说,聚合器pom也是父pom,这是一种常规方法,但并不总是需要)。

后者是否需要?您可以继续使用多模块/聚合器方法,而无需将聚合器作为插件子模块的父级。因此,插件subModule仍然是聚合器pom的一个模块,但它不会将聚合器pom作为父节点,将它与它解耦,从而打破循环依赖。

可能的缺点:在聚合器pom中,您还定义了插件子模块中所需的常见事物(依赖关系管理,属性)。如果是这种情况,那么您只需要为相关的子模块复制/查看这些常用设置。

答案 1 :(得分:0)

我方的小建议。循环意味着您的模块中存在一些传递依赖。请检查模块的依赖树,并首先解决循环依赖。