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

升级SonarQube 8.9后Scala项目代码覆盖率显示0%问题求助

Scala项目SonarQube 8.9覆盖率为0修复方案

路径校验

  • 首先修正参数里的路径拼写错误,你配置的-Dsonar.coverage.jacoco.xmlReportPaths=".../jacoco.xml"用了三个点的相对路径,要替换为正确的两个点上级目录写法,或直接写绝对路径。
  • Jenkins构建步骤中增加shell命令确认报告文件存在:find ./ -name jacoco.xml 打印生成的报告完整路径,直接拷贝到sonar参数中,避免相对路径计算错误。

路径匹配配置

SonarQube导入覆盖率需要报告内的类路径和扫描到的源码路径完全匹配,Scala项目需额外补充2项配置:

  1. build.sbt中添加jacoco报告配置,强制输出标准格式xml:
jacocoReportSettings := JacocoReportSettings()
  .withFormats(JacocoReportFormats.XML)
  .withSourceEncoding("UTF-8")
  1. sonar扫描参数补充源码和字节码目录配置,替换xx为你项目使用的Scala版本号:
    -Dsonar.scala.sources=src/main/scala -Dsonar.java.binaries=target/scala-xx/classes

多模块项目适配

如果是多模块项目,要把所有子模块生成的jacoco.xml路径都配置到参数中,用逗号分隔:
-Dsonar.coverage.jacoco.xmlReportPaths=moduleA/target/scala-xx/jacoco/report/jacoco.xml,moduleB/target/scala-xx/jacoco/report/jacoco.xml

服务端插件校验

确认SonarQube 8.9服务端安装的插件版本符合要求:

  • Scala插件版本 ≥ 1.8.3
  • JaCoCo插件版本 ≥ 1.1.1
    低版本插件无法识别新格式的jacoco xml报告,会直接忽略覆盖率数据。

相关异常截图:
Sonar平台覆盖率展示
本地Jacoco报告输出


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:24:05