升级Spring Boot至2.7.5版本后SonarQube覆盖率显示0%求助
覆盖率报告未生成或未被Sonar读取
Spring Boot 2.7.x默认使用Jacoco做覆盖率统计,升级后可能Jacoco配置被覆盖或未绑定到测试阶段。执行mvn clean test jacoco:report,检查target/site/jacoco目录下是否生成jacoco.xml等报告文件。若未生成,需确认pom.xml中Jacoco插件是否正确绑定到test生命周期阶段。SonarQube未配置覆盖率报告路径
单独执行mvn sonar:sonar时,Sonar可能找不到覆盖率报告文件。需在命令中添加参数指定路径:mvn sonar:sonar -Dsonar.java.coveragePlugin=jacoco -Dsonar.jacoco.reportPaths=target/site/jacoco/jacoco.xml,也可以在pom.xml的Sonar插件配置中固定这些参数。源文件与测试文件路径不匹配
SonarQube通过sonar.sources和sonar.tests参数关联源文件与测试文件,升级后若项目结构调整或参数配置错误,会导致无法匹配覆盖率数据。检查参数是否指向正确目录,比如sonar.sources=src/main/java、sonar.tests=src/test/java。Jacoco与Spring Boot版本不兼容
若手动指定了旧版Jacoco插件,可能与Spring Boot 2.7.5存在兼容性问题。建议直接使用Spring Boot parent管理的Jacoco版本,避免手动指定;若需自定义,确保Jacoco版本在0.8.7及以上。单元测试未正常执行
升级后可能因依赖变更、代码改动导致测试执行失败或被跳过。执行mvn test查看测试结果,确认所有测试都正常运行,无失败或跳过情况。修复异常测试后再重新生成覆盖率报告。SonarQube服务器版本过旧
旧版SonarQube可能不支持Spring Boot 2.7.x项目的覆盖率解析。检查服务器版本,建议升级到9.x及以上系列版本,确保与项目版本兼容。
内容的提问来源于stack exchange,提问作者Mohamed MOUFAHIM

