java - Maven Plugin子模块的集成测试

标签 java maven module integration-testing maven-plugin

我有一个带有多个子模块的 Maven 项目。这些子模块之一,假设子模块 X 依赖于所有其他子模块,因为它是集成了其他所有内容的 Maven 插件。

现在我想在我的父 POM 的 verify 阶段使用这个 Maven 插件,以便在整个项目中真正运行它(有点像吃自己的狗粮)。

不幸的是我遇到了错误:

The projects in the reactor contain a cyclic reference

那么我怎样才能对 Maven 插件子模块进行这样的dogfood集成测试呢?

最佳答案

我会回顾一下聚合和继承:它们确实是 two different Maven 中的概念经常组合使用,但也可以以完全独立的方式使用。

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

后者是必需的吗?您可以继续采用多模块/聚合器方法,而不必将聚合器作为插件子模块的父模块。因此,插件 subModule 仍然是聚合器 pom 的模块,但它不会将聚合器 pom 作为父级,从而将其与聚合器 pom 解耦,从而打破循环依赖关系。

可能的缺点:在聚合器 pom 中,您还定义了插件子模块中也需要的常见内容(依赖项管理、属性)。如果是这种情况,您将需要仅为相关子模块复制/查看这些常见设置。

关于java - Maven Plugin子模块的集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34557642/

相关文章:

Java-在读取图像时处理图像

java - 如何配置 JUnit 规则以应用于特定测试

java - HTTP 状态 500 嵌套异常无法加载类 [oracle.jdbc.driver.OracleDriver]

java - 如何在 jetty 服务器上使用 war 文件之外的文件?

java - 无法导入 android 支持 IntelliJ 项目

database - 如何在 Drupal 模块的安装文件中创建数据库表?

module - Fortran 模块中类型之间的循环依赖

java - TimerTask 的问题

java - J2ME中使用Hashtable实现从电话簿中读取联系人

javascript - 如何在 'use strict' 模式下跨多个 Node 模块访问我的对象数组作为数据存储?