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

如何配置mill-contrib-scoverage插件适配Scala3?

配置mill-contrib-scoverage适配Scala3的解决方案

核心问题原因

Mill官方文档默认的mill-contrib-scoverage插件配置基于Scoverage 1.x版本,而Scoverage 1.x不支持Scala3;同时Scoverage 2.x版本变更了Maven坐标,直接修改版本号会导致依赖解析失败。此外,早期Mill版本的scoverage插件未适配Scala3,需升级至兼容版本。

分步配置方案

  1. 升级Mill版本
    使用Mill 0.11.0及以上版本,该版本已合并Scala3支持的相关代码,确保插件能正常适配Scala3项目。

  2. 修改build.sc配置
    调整插件导入和模块配置,覆盖默认的Scoverage版本与依赖坐标:

    import mill._, scalalib._
    // 导入对应Mill版本的scoverage插件
    import $ivy.`com.lihaoyi::mill-contrib-scoverage::0.11.0`
    import mill.contrib.scoverage.ScoverageModule
    
    object yourModule extends ScalaModule with ScoverageModule {
      // 指定你的Scala3版本
      override def scalaVersion = "3.3.1"
      
      // 设置Scoverage 2.x版本(如2.1.1)
      override def scoverageVersion = "2.1.1"
      
      // 修正Scoverage 2.x的依赖坐标(groupId已变更)
      override def scoverageDep =
        ivy"org.scoverage.scalac-scoverage-plugin::scalac-scoverage-plugin::$scoverageVersion"
    }
    
  3. 运行覆盖率报告任务
    在终端执行以下命令生成HTML覆盖率报告:

    mill yourModule.scoverage.htmlReport
    

关键注意事项

  • 确保Scala3版本与Scoverage版本兼容,例如Scoverage 2.1.1支持Scala 3.3.x系列版本。
  • 若使用Mill快照版本(Snapshot),无需额外配置依赖坐标,插件已默认适配Scoverage 2.x。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 20:23:16