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

升级至Spring Boot 2.7.10后Jacoco插件失效,代码覆盖率为0%

解决Jacoco插件无法解析及Sonar覆盖率为0的问题

一、先修复Jacoco插件无法解析的问题

  • 检查Maven镜像配置:确认本地settings.xml中的镜像仓库(如阿里云镜像、官方中央仓库)可正常访问,部分私有镜像可能未同步Jacoco插件资源。
  • 清理本地仓库缓存:删除本地Maven仓库中org/jacoco目录,执行mvn clean install -U强制更新依赖。
  • 确认插件配置位置:确保Jacoco插件配置在pom.xml的<build><plugins>节点下,若放在<pluginManagement>中需额外显式引用。

二、调整Jacoco插件配置以生成覆盖率数据

修改插件配置,确保测试执行时代理正常启动并生成覆盖率文件:

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.8.7</version>
    <executions>
        <execution>
            <id>jacoco-agent</id>
            <goals>
                <goal>prepare-agent</goal>
            </goals>
            <!-- 绑定到test阶段,保证测试运行前启动代理 -->
            <phase>test</phase>
        </execution>
        <execution>
            <id>jacoco-report</id>
            <phase>verify</phase>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
    </executions>
</plugin>

三、配置Sonar读取Jacoco覆盖率数据

在pom.xml中添加Sonar属性,指定Jacoco报告路径:

<properties>
    <sonar.jacoco.reportPaths>${project.build.directory}/jacoco.exec</sonar.jacoco.reportPaths>
</properties>

四、验证流程

  1. 执行mvn clean test,检查target目录下是否生成jacoco.exec文件。
  2. 执行mvn verify,确认target/site/jacoco目录生成HTML格式的本地覆盖率报告。
  3. 执行Sonar扫描命令(如mvn sonar:sonar),此时Sonar应能正常读取覆盖率数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 22:14:58