scala - 在 sbt 中与 2.10.0 交叉构建

标签 scala sbt

我正在使用 sbt 12.1 交叉构建一个 Scala 项目。

crossScalaVersions := Seq("2.9.2", "2.10.0")

但是,它找不到依赖项,因为它们被命名为 _2.10不是 _2.10.0 .为您的图书馆命名似乎很常见2.10而不是 2.10.0除了 scala-languagescala-compiler .例如,在 http://repo1.maven.org/maven2/org/scalaz/scalaz-core_2.10.0/6.0.4/scalaz-core_2.10.0-6.0.4.pom 中找不到 scalaz但在 http://repo1.maven.org/maven2/org/scalaz/scalaz-core_2.10/6.0.4/scalaz-core_2.10-6.0.4.pom .

有没有一种简单的方法来处理这个问题,而无需为我的所有依赖项编写自定义规则?

实际的 build.sbt 可用 online .

最佳答案

2.10.x发行版彼此之间是二进制兼容的,库只需要使用一个版本的 Scala 库构建 - 他们可以(并且必须)删除 .0部分(如果您使用 sbt 发布,它会自动完成)。当库的维护者使用 _2.10.0 发布库时标记,这是一个错误,您应该考虑提交错误。

对了,我看了你的build.sbt - 运行 +compile它对我有用(sbt 0.12.1)。您是否遇到过一些错误?

关于scala - 在 sbt 中与 2.10.0 交叉构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15285639/

相关文章:

scala - 如何让scala的Future运行在当前线程?

scala - 如何有选择地从 map 函数返回值

scala - 如何调用带有Tuple2的2个参数的函数?

sbt - 使用 SBT,我如何指定一个替代项目根而不是当前目录来运行主类?

bash - 从脚本执行 SBT 命令

scala - 为什么在整数列表上调用 flatMap 会失败?

scala - object User extends Magic[User]().using ("users") 无法编译

sbt - 运行 SBT 而不先安装

java - sbt编译play框架应用报错

java - 为什么当我进行单元测试时,我得到的覆盖点是 `final lazy val` 而不是 `final val`?