当Scala的新版本问世时,看到依赖关系破坏是正常的吗?

Ale*_*zzi 0 dependencies scala sbt

我刚刚开始使用Scala开发,并且正在尝试将"newman"库添加到我的项目中,以便我可以执行JSON + REST.

不幸的是,我收到以下错误:

[error] (*:update) sbt.ResolveException: unresolved dependency: com.stackmob#newman_2.11;1.3.5: not found
Run Code Online (Sandbox Code Playgroud)

对于该项目的一些github问题,有一些提及没有2.11支持.所以,正如我的问题所说 - 这是正常的吗?我来自PHP生态系统,新版本的PHP解释器很少会导致编写器出现问题.

我应该注意我正在使用的Scala版本是什么?有没有办法绕过这个限制并强行安装?这是一个好主意吗?

soc*_*soc 8

是.

主要版本彼此不是二进制兼容的,因此Scala 2.11要求使用该主要版本编译库(依此类推2.10,2.12).请注意Scala的版本方案是epoch.major.minor.

为什么Newman不适用于2.11的具体问题似乎在这里被跟踪https://github.com/stackmob/newman/issues/109https://github.com/stackmob/newman/pull/116.

我应该注意我正在使用的Scala版本是什么?

在选择特定的Scala版本之前研究库/依赖项是否可用是有意义的.

有没有办法绕过这个限制并强行安装?这是一个好主意吗?

不,不.

当Scala在JVM中运行时,二进制兼容性如何影响?

后端支持的JVM类文件版本范围与Scala版本基本无关.目前,scalac发出Java 6字节码.这意味着Scala的完整表现力可以在默认情况下自2006年发布的JVM上获得.在未来,计划至少需要Java 8,以利用该版本中引入的新功能.

虽然多个Scala版本在过去发布了Java 6字节码,但请注意主要版本不兼容,因为Scala不断改进和改进其标准库及其字节码生成器.