【问题标题】:Sbt plugin binary incompatibilitySbt 插件二进制不兼容
【发布时间】:2013-03-01 06:05:59
【问题描述】:

我正在使用 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 构建的吗?我在哪里可以找到信息?

【问题讨论】:

    标签: scala sbt


    【解决方案1】:

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

    【讨论】:

    • 谢谢。这就解释了一切。
    【解决方案2】:

    为了向 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 不需要与之交互。

    【讨论】:

      猜你喜欢
      • 2022-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-21
      • 2015-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多