我有一个 Maven 多项目构建。单元测试使用 PowerMock 1.6.6,并且我已设法使用“离线”过程为每个模块生成单独的 Jacoco (0.7.8) exec 文件。我还有一个模块,它使用“report-aggregate”生成单个 JaCoCo 报告。
我现在正在尝试使用 sonar-scanner 2.8 与 SonarQube 5.6.5 集成。
使用this doc page我自然地构建了一个命令行,将“sonar.jacoco.reportPaths”属性设置为每个子模块中“jacoco.exec”文件的逗号分隔路径列表。这似乎没有效果。我在输出中看到一条消息“INFO: JaCoCoSensor: JaCoCo report not found : <mycurrentdirectory>\target\jacoco.exec
”。
因此,我将属性“sonar.jacoco.reportPath”设置为相同的逗号分隔值。这至少产生了效果,但它使扫描仪感到困惑,因为它显然期望这是一个位置。
然后,我尝试将该属性设置为几个“jacoco.exec”文件中的第一个。这至少完成了,但覆盖数据最少。
我该如何继续?我是否应该以某种方式使用 Jacoco“合并”目标将所有 jacoco.exec 文件合并到一个文件中,并指定它,或者是否有一个不同的未记录属性允许文件路径列表?
最佳答案
我验证了广告中的“sonar.jacoco.reportPaths”属性仅适用于 SonarQube 版本 6.2 或更高版本(文档显然已更新以反射(reflect)这一点)。
因此,我继续实现“合并”,为所有模块指定文件集。花了一段时间才获得该文件集列表的正确数据(Maven 与许多框架一样,当您的配置数据表示不存在的文件或组件时通常什么也不说)。
关于java - 如何将 Maven 多项目构建中的离线 JaCoCo 执行文件集成到 SonarQube 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41968175/