Scala无法在库中修复版本吗?

时间:2015-03-30 10:21:59

标签: scala

我了解到Scala受到限制,所有Scala字节码都需要从相同的编译器版本生成。例如我没有为2.9构建的库可以使用由2.9.1

构建的应用程序

http://lift.la/blog/scalas-version-fragility-make-the-enterprise

我尝试在网上搜索有关此问题的更多讨论,但无法找到更多更新。这个问题,如在Scala 2.11.6中,是否在任何范围内得到修复?

1 个答案:

答案 0 :(得分:5)

在Scala中,版本字符串中的“中间”数字是主要版本,因此在2.10.x和2.11.x中,主要版本为 10 ,分别 11

主要版本是二进制兼容。因此,如果您有一个针对Scala 2.11.0编译的库,您可以安全地在使用2.11.6而无需重新编译的项目中使用它,反之亦然。如果您的库是为Scala 2.10.5编译的,则必须重新编译它以在Scala 2.11.x项目中使用。

如果您的代码未调用已弃用的API,则它应与源兼容以及后续主要版本。


大多数图书馆同时发布至少两个主要版本,因此有很大的弹性。举个例子,Scalaz,它为Scala 2.9.3Scala 2.10.xScala 2.11.x交叉构建了最新的工件。