java - 如何将 Maven 多项目构建中的离线 JaCoCo 执行文件集成到 SonarQube 中

标签 java maven sonarqube powermock jacoco

我有一个 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/

相关文章:

java - 如何使用 JAVA Concert 在 CPLEX 中结合时间限制和间隙终止标准

maven - 如何在 Nexus OSS 3 中配置路由

java - 没有名为 itmd4515PU 的 EntityManager 持久性提供程序

安卓 : Best way to add library dependency to Android Library

java - 为自定义语法创建自定义代码分析规则,并进行测试: howto?

java - 在二叉树中查找最大元素

Java:验证文本字段输入是否仅包含字母字符

java - Spring中配置的BasicDataSource与Weblogic数据源

java - 为什么 Sonar :sonar needs mvn install before?

当选择 Unresolved 解决方案时,sonarqube 问题显示已关闭的项目