1

私はsbtantlrプラグインを使用しており、antlrv3.5を使用するようにプラグインを調整しています。以前はscala2.9.2で正常に動作していました。

今日、私は自分のscalaを2.10.0にアップグレードしました。

そして、プラグインを2.10.0でコンパイルし、プラグイン「sbtantlr.jar」をメインのscalaプロジェクトの「lib」ディレクトリに配置しました。

SBTは、次のエラーメッセージの処理を停止しました。

プラグインのバイナリ非互換性が検出されました。

コンパイラのバージョンを2.9.2に戻しましたが、正常に動作します。

SBT(公式バイナリリリース)が2.9で構築されたためですか?情報はどこにありますか?

4

2 に答える 2

4

はい、sbt 0.12.xは2.9xで構築されており、すべてのプラグインはバイナリのScalaバージョンと一致する必要があります。

于 2013-02-28T20:04:52.223 に答える
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 はプロジェクトと対話する必要がないため、プロジェクト自体は任意のバージョンでコンパイルできます

于 2013-02-28T22:05:59.923 に答える