scala - sbt 与库关于 scala 版本的意见不一致

标签 scala sbt

我尝试在 scala 2.10 中使用 scala-time,但发现它无法正确与 sbt 配合使用。

给出类似的东西

scalaVersion := "2.10.2"

libraryDependencies += "org.scalaj" %% "scalaj-time" % "0.7"

sbt 将很乐意尝试解决 http://repo1.maven.org/maven2/org/scalaj/scalaj-time_2.10/0.7/scalaj-time_2.10-0.7.pom .

不幸的是,scalaj-time 已发布完整的 scala 版本,如 http://central.maven.org/maven2/org/scalaj/ 所示。 .

可以通过

解决
 libraryDependencies += "org.scalaj" % "scalaj-time_2.10.2" % "0.7"

但我想知道这是否是 sbt 行为的变化、scala-time 构建中的错误,或者是否有办法配置 sbt 以传递 3 部分版本而不是 2 部分版本。

最佳答案

正如 Seth 所说 jorgeortiz85/scala-time可能是使用 sbt 发布的,该约定早于 sbt 0.12 中引入的二进制交叉版本控制约定。你可以这样做:

libraryDependencies += "org.scalaj" % "scalaj-time_2.10.2" % "0.7"

libraryDependencies += "org.scalaj" % "scalaj-time" % "0.7" cross CrossVersion.full

但是,当 Scala 2.10.4 已经发布时,您将不得不使用 2.10.2。

有一个类似的 Joda 时间包装器,名为 nscala-time/nscala-time这似乎更积极地维护。最后更新于 3 天前,Scala 2.11.0 已受支持,因此这也可能是您的选择。

libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "1.0.0"

关于scala - sbt 与库关于 scala 版本的意见不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22975763/

相关文章:

Scala 中的 JavaFX 2 和 setCellValueFactory()?

sbt - 如何复制任务,例如编译?

sbt - 访问 sbt 子项目的 managedClasspath

ssh - 通过SSH在SBT任务中执行Shell脚本

scala - 更正 apache spark 的 build.sbt 文件

scala - 分页 Play 路线的最佳做法?

scala - 如何将路径列表传递给 spark.read.load?

scala - h2o scala代码编译错误找不到对象ai

Scala toString : parenthesize or not?

scala - 值isBlank不是String的成员