Sbt插件二进制不兼容

时间:2013-02-28 20:03:51

标签: scala sbt

我正在使用sbtantlr插件并使其适应使用antlr v3.5。它习惯于使用scala 2.9.2。

今天我将scala升级到了2.10.0。

我在2.10.0中编译了插件,并将插件'sbtantlr.jar'放在我的主scala项目的'lib'目录中。

SBT停止使用此错误消息:

检测到插件中的二进制不兼容性。

我将编译器版本恢复为2.9.2并且工作正常。

是否因为SBT(官方二进制版本)是用2.9构建的?我在哪里可以找到这些信息?

2 个答案:

答案 0 :(得分:4)

是的,sbt 0.12.x使用2.9x构建,所有插件都需要匹配二进制Scala版本。

答案 1 :(得分:1)

为了向Yann所说的添加更多信息,Scala只保证次要版本之间的兼容性。也就是说,使用任何2.8.x版本编译的代码与使用任何其他2.8.x版本编译的代码兼容,但是没有使用2.8.x编译的代码与2.9.x版本编译的代码兼容。

现在,SBT是一个Scala应用程序,插件和构建配置都是它的库。 SBT 0.12.x是使用Scala 2.9.x编译的,因此所有插件和项目构建配置也必须使用Scala 2.9.x进行编译。

项目本身可以使用任何版本进行编译,因为SBT不需要与之交互。