如何将Maven多项目构建中的脱机JaCoCo exec文件集成到SonarQube中

时间:2017-01-31 21:53:16

标签: java maven sonarqube powermock jacoco

我有一个Maven多项目构建。单元测试使用的是PowerMock 1.6.6,我已经设法使用"离线"为每个模块生成单独的Jacoco(0.7.8)exec文件。处理。我还有一个使用" report-aggregate"生成一份JaCoCo报告。

我现在正试图使用​​声纳扫描仪2.8与SonarQube 5.6.5集成。

使用this doc page我自然地构建了一个命令行来设置&#34; sonar.jacoco.reportPaths&#34;属性为逗号分隔的&#34; jacoco.exec&#34;的路径列表。每个子模块中的文件。这似乎没有效果。我在输出中看到一条消息说&#34; INFO: JaCoCoSensor: JaCoCo report not found : <mycurrentdirectory>\target\jacoco.exec&#34;。

所以,我改为设置属性&#34; sonar.jacoco.reportPath&#34;以相同的逗号分隔值。这至少产生了影响,但它使扫描仪感到困惑,因为它显然预计这是一个单独的位置。

然后我尝试将该属性设置为几个中的第一个&#34; jacoco.exec&#34;文件。至少已完成,但覆盖范围数据最少。

我该怎么办?我应该以某种方式使用Jacoco&#34;合并&#34;目标是将我的所有jacoco.exec文件合并到一个文件中,并指定它,或者是否有一个不同的未记录的属性,允许一个文件路径列表?

1 个答案:

答案 0 :(得分:0)

我确认广告中的“sonar.jacoco.reportPaths”属性仅适用于SonarQube版本6.2或更新版本(文档显然已更新以反映此情况)。

因此,我继续实施“merge”,指定所有模块的文件集。花了一段时间才能为该文件集列表提供正确的数据(Maven,就像许多框架一样,当配置数据代表不存在的文件或组件时,通常都没有说明。)