我正在使用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構建的嗎?我在哪裏可以找到信息?
我正在使用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構建的嗎?我在哪裏可以找到信息?
是的,sbt 0.12.x使用2.9x構建,所有插件都需要匹配二進制Scala版本。
要向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-28 20:27:59