我正在使用 sbt 12.1 交叉构建一个 Scala 项目。
crossScalaVersions := Seq("2.9.2", "2.10.0")
但是,它找不到依赖项,因为它们被命名为
_2.10
不是 _2.10.0
.为您的图书馆命名似乎很常见2.10
而不是 2.10.0
除了 scala-language
和 scala-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/