2013-02-28 82 views
1

我正在使用sbtantlr插件並使其適用於使用antlr v3.5。它曾經用scala 2.9.2很好地工作。Sbt插件二進制不兼容

今天我升級了我的scala到2.10.0。

然後我在2.10.0中編譯插件,並將插件的'sbtantlr.jar'放入我主scala項目的'lib'目錄中。

SBT停止與此錯誤消息的工作:

在插件二進制不兼容檢測。

我將編譯器版本恢復到2.9.2,它工作正常。

是因爲SBT(官方二進制版本)是用2.9構建的嗎?我在哪裏可以找到信息?

回答

4

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

+0

謝謝。這解釋了一切。 – 2013-02-28 20:27:59

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不需要與它進行交互。