Maven故障保护不会在子模块中运行测试

时间:2017-11-26 01:32:52

标签: java maven maven-failsafe-plugin

我有一个项目,其父目录在pom.xml中包含以下内容:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-failsafe-plugin</artifactId>
  <version>2.20.1</version>
  <executions>
    <execution>
      <goals>
        <goal>integration-test</goal>
        <goal>verify</goal>
      </goals>
    </execution>
  </executions>
</plugin>

<modules>
  <module>submodule</module>
</modules>

子模块子目录再次包含pom.xml,其中包含对其父工件的引用。该子目录还包含许多集成测试,如果我将failsafe插件移动到子模块的pom.xml然后从父目录调用mvn verify,那么它运行正常,但这不适用于当前(首选)设置(没有错误,测试根本没有执行)。

我尝试在故障安全插件的配置中将子模块工件添加到dependenciesToScan,但这并没有解决问题。我是否需要将子模块添加为父pom.xml中的依赖项?因为在处理pom.xml时会导致“依赖性引用自身”错误。

帮助将不胜感激。

编辑:我已经弄明白了,其他从事该项目的人已将build部分包裹在profile部分中,我起初并没有意识到这一点,因为整个文件相当大,笨拙地,我忽略了相应的git提交。通过撤消该更改并遵循Gerald Broser发布的链接中的说明,我设法解决了我的问题(我想只是执行相应的配置文件也会完成它,但无论如何都无需更改)。

2 个答案:

答案 0 :(得分:1)

请参阅Maven Failsafe Plugin / Usage / Usage in multi-module projects

  

当您在父pom中定义Failsafe插件的共享定义时,最佳做法是定义执行ID,以允许子项目覆盖配置。

答案 1 :(得分:0)

尝试致电

mvn clean verify -P <module>