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

如何让sbt解析完整Scala版本?scoverage依赖版本异常排查

问题解答

第一个问题:让sbt解析完整Scala版本(2.13.1)的依赖

sbt的%%语法会自动使用Scala的二进制兼容版本(即major.minor,比如2.13)拼接依赖坐标,这是Scala生态的常规做法——同大版本下的小版本(如2.13.1、2.13.8)二进制兼容,绝大多数库只会发布到二进制版本的坐标下,不会单独为每个小版本发包。

如果一定要强制使用完整的2.13.1版本后缀,需要把%%改成%,手动指定带完整Scala版本的依赖名称:

"org.scoverage" % "scalac-scoverage-plugin_2.13.1" % "2.0.8"

但注意:maven中央仓库中大概率不存在scalac-scoverage-plugin_2.13.1这个包,scoverage官方只会按二进制版本(2.13)发布插件,这种情况下建议接受使用scalac-scoverage-plugin_2.13。

第二个问题:sbt-scoverage 2.0.8自动请求2.0.10版本的scalac插件

这是因为sbt-scoverage插件内部会自动依赖对应的scalac-scoverage-plugin,且插件版本和scalac插件版本存在绑定关系——sbt-scoverage 2.0.8默认会拉取配套的scalac-scoverage-plugin 2.0.10(绑定规则由插件维护者定义)。

要强制指定scalac插件的版本,在build.sbt中添加以下设置覆盖默认值即可:

coveragePluginVersion := "2.0.8"

执行sbt clean coverage test时就会拉取2.0.8版本的scalac-scoverage-plugin,而非2.0.10。

内容的提问来源于stack exchange,提问作者Mr. MonoChrome

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 20:52:44