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

时间:2019-10-20 06:01:24

标签: scala sbt

我正在将一个小的旧式库从scala 2.12移植到scala 2.13。 sbt版本是1.3.3。该项目是平坦且相对简单的。在项目中声明的 scalaVersion 是2.13.1。

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

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

1 个答案:

答案 0 :(得分:0)

只是有类似的问题,sbt将我的项目编译为错误的Scala版本,在Google中发现此问题而没有答案。

所以,我的问题实际上非常简单。原来,您需要在项目根目录(build.sbt所在的目录)中启动sbt。我是从所有.scala文件所在的目录中运行该文件的,因此它没有使用默认的Scala版本(本例为2.12)来解析build.sbt和已编译的项目。