我一直在将代码覆盖率统计信息添加到多模块Maven项目中。该项目由一个根pom组成,然后是多个子模块,每个子模块都有自己的pom。
root pom的jacoco配置如下:
<pluginmanagement>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.5</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>default-report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>check</id>
<goals>
<goal>check</goal>
</goals>
<configuration>
<haltOnFailure>true</haltOnFailure>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginmanagement>
每个模块POM文件都具有类似的配置,该配置配置了代码覆盖率阈值:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.5</version>
<executions>
<execution>
<id>check</id>
<configuration>
<rules>
<rule>
<limits>
<limit>
<value>COVEREDRATIO</value>
<minimum>0.74</minimum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</execution>
</executions>
</plugin>
我有一个依赖于所有其他模块的模块。我向该模块的pom文件添加了汇总报告目标,如下所示:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.5</version>
<executions>
<execution>
<id>check</id>
<configuration>
<rules>
<rule>
<limits>
<limit>
<value>COVEREDRATIO</value>
<minimum>0.74</minimum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</execution>
<execution>
<id>report-aggregate</id>
<phase>verify</phase>
<goals>
<goal>report-aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
当我查看为汇总报告生成的index.html
时,某些(但不是全部)模块出现了两次。有人知道为什么会这样吗?我想知道是否可能是因为我正在做每个模块的报告和汇总报告,但是禁用每个模块的报告似乎没有任何影响。