You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SonarQube 6.0配置多jacoco.exec路径后无代码覆盖显示求助

解决SonarQube 6.0中多Jacoco.exec文件无法显示覆盖率的问题

你遇到的问题核心在于:SonarQube 6.0版本的sonar.jacoco.reportPath属性并不支持逗号分隔的多个文件路径——这个多路径支持是从SonarQube 6.2版本开始,通过新属性sonar.jacoco.reportPaths才引入的。所以直接用逗号分隔多个路径,Sonar会无法识别,自然不会展示覆盖率数据。

针对你的场景,推荐以下几种可行的解决方案:

方案1:用Maven Jacoco插件合并多个exec文件

这是最适配你Maven项目的方式,通过Jacoco插件的merge目标,把所有分散的jacoco.exec合并成一个文件,再将这个合并后的文件路径配置给sonar.jacoco.reportPath。

在项目的pom.xml中添加Jacoco插件的合并配置:

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.8.7</version> <!-- 选择与你的Jacoco版本兼容的版本 -->
    <executions>
        <execution>
            <id>merge-jacoco-reports</id>
            <phase>verify</phase> <!-- 在构建验证阶段执行合并 -->
            <goals>
                <goal>merge</goal>
            </goals>
            <configuration>
                <!-- 指定要合并的所有exec文件所在的目录及匹配规则 -->
                <fileSets>
                    <fileSet>
                        <directory>${project.basedir}</directory>
                        <includes>
                            <include>**/jacoco.exec</include>
                        </includes>
                    </fileSet>
                </fileSets>
                <!-- 合并后的输出文件路径 -->
                <destFile>${project.build.directory}/merged-jacoco.exec</destFile>
            </configuration>
        </execution>
    </executions>
</plugin>

之后在你的Sonar配置中,将sonar.jacoco.reportPath设置为合并后的文件路径:

sonar.jacoco.reportPath=${project.build.directory}/merged-jacoco.exec

执行Maven构建时,插件会自动完成合并,Sonar就能正常读取覆盖率数据了。

方案2:通过Jacoco CLI工具合并文件

如果不想修改pom.xml,也可以在Jenkins任务中添加shell步骤,用Jacoco的命令行工具合并文件:

  1. 先下载对应版本的jacococli.jar(可以和你项目中使用的Jacoco版本保持一致)
  2. 执行合并命令:
java -jar jacococli.jar merge destfile=./target/merged-jacoco.exec execfiles=./module1/target/jacoco.exec,./module2/target/jacoco.exec
  1. 同样将Sonar的sonar.jacoco.reportPath指向这个合并后的文件路径。

注意事项

  • 确保所有jacoco.exec文件的路径配置正确,相对路径要基于Jenkins任务的工作目录(项目根目录)
  • 合并后的文件要确保能被Sonar进程访问到,权限和路径都不能有问题
  • 建议保持Jacoco插件版本与SonarQube 6.0的Jacoco插件兼容,避免版本不匹配导致的问题

内容的提问来源于stack exchange,提问作者Sreelakshmy Koonath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:41:04