使用sbt-scoverage插件时遇java.lang.NoSuchMethodError错误求助
问题分析
这个错误是由于sbt版本与scoverage插件版本不兼容导致的:scoverage 2.x系列依赖sbt核心库中的singleFileJsonFormatter方法,但你使用的sbt 1.2.8版本并没有提供这个API,因此抛出NoSuchMethodError。
解决方案
有两种可行的解决方式:
方式一:升级sbt版本到兼容版本
scoverage 2.x要求sbt版本至少为1.3.0,修改build.properties文件中的sbt版本:
sbt.version = 1.3.13
(也可以选择更高的稳定版本,比如1.9.6)
修改后重新执行sbt命令,插件即可正常加载。
方式二:降级scoverage到与sbt 1.2.8兼容的版本
如果不想升级sbt,使用scoverage 1.x系列版本(该系列支持sbt 1.0.x - 1.2.x),修改plugins.sbt:
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.6.1")
同时保持build.sbt中的coverageEnabled := true配置不变,重新加载项目即可。
内容的提问来源于stack exchange,提问作者sarah w
相关产品推荐
相关产品推荐

