SonarQube + Reports 中未显示的依赖模块中的聚合覆盖率或覆盖率由 Jacoco 生成

Aggregated Coverage or Coverage in the dependent modules not shown in SonarQube + Reports are generated by Jacoco

我是 运行 jacoco 插件来生成 html , xml 和 jacoco.exec 报告来衡量我 [= 测试的代码的覆盖率13=] 测试。

我在本地和 Jenkins 中成功生成了这些报告,我所有的单元测试结果都反映在 Sonar 中,它显示了覆盖率。

我的jacoco.exec既有模块中的覆盖结果,也有依赖模块的结果。我已经使用 eclemma plugin for eclipse.

验证了这一点

我没有在 Sonar.Does 中的任何一个依赖模块中得到覆盖率结果,我做错了什么。

我的插件是这样的

<plugin>
 <groupId>org.jacoco</groupId>
 <artifactId>jacoco-maven-plugin</artifactId>
 <version>0.7.7.201606060606</version>
 <executions>
    <execution>
        <goals>
            <goal>prepare-agent</goal>
        </goals>
    </execution>
    <execution>
        <id>report</id>
        <phase>prepare-package</phase>
        <goals>
            <goal>report</goal>
        </goals>
    </execution>
  </executions>
</plugin>

我的目标是 jacoco:report-aggregate

我从jacoco plugin coverage in multi-module

那里得到了答案

以下是我造成问题的错误。在我们的 pom

的属性中
 <sonar.jacoco.reportPath>${project.basedir}/../target/jacoco.exec</sonar.jacoco.reportPath>

在插件中

 <destFile>${sonar.jacoco.reportPath}</destFile>

对我来说,由于 maven 模块层次结构的差异,上述语句刷新了不同文件夹中的 jacoco.exec,因此它们从未聚合。

第二点,依赖模块的覆盖率只有对测试模块compile time dependency才会获取