Scala 2.13,SBT:sbt 编译使用了错误的编译器版本



我正在将一个小型遗留库从 scala 2.12 移植到 scala 2.13。 SBT 版本是 1.3.3。该项目是平坦的,相对简单。项目中声明的 scalaVersion是 2.13.1。

我正在执行清理编译任务,然后发布到本地常春藤和工件工厂。 该过程似乎进展顺利,并创建了带有_2.13后缀的工件。当此二进制文件针对 scala 2.13 运行时执行时,它会失败并出现MethodNotFound异常。进一步的内省表明,该工件是为 2.12 编译的,而不是为 2.13 编译的。

有没有人知道为什么 sbt 使用不同的编译器版本,以及如何解决这个问题?

刚刚有类似的问题,sbt 将我的项目编译为错误的 Scala 版本,发现这个问题在谷歌中没有答案。

所以,我的问题其实很简单。事实证明,您需要在项目根目录(build.sbt所在的位置(中启动sbt。我是从我所有 .scala 文件所在的目录运行它的,所以它没有解析 build.sbt 并使用默认的 Scala 版本(在我的例子中为 2.12(编译项目。

最新更新