【发布时间】:2015-11-27 07:19:29
【问题描述】:
我有一个使用 Scala 2.10 的项目和一个使用 Scala 2.11 的项目。它们依赖于一个通用项目,可以同时编译。
lazy val foo = (project in file("foo")).dependsOn(baz).settings(
scalaVersion := "2.10.4"
)
lazy val bar = (project in file("bar")).dependsOn(baz).settings(
scalaVersion := "2.11.4"
)
lazy val baz = (project in file("baz")).settings(
crossScalaVersions := Seq("2.10.4", "2.11.4"),
scalaVersion := "2.10.4"
)
然后
$ sbt bar/update
[info] Updating {file:/home/paul/Private/test/}bar...
[info] Resolving baz#baz_2.11;0.1-SNAPSHOT ...
[warn] module not found: baz#baz_2.11;0.1-SNAPSHOT
[warn] ==== local: tried
[warn] /home/paul/.ivy2/local/baz/baz_2.11/0.1-SNAPSHOT/ivys/ivy.xml
[warn] ==== public: tried
[warn] http://repo1.maven.org/maven2/baz/baz_2.11/0.1-SNAPSHOT/baz_2.11-0.1-SNAPSHOT.pom
[info] Resolving jline#jline;2.12 ...
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: baz#baz_2.11;0.1-SNAPSHOT: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[trace] Stack trace suppressed: run last bar/*:update for the full output.
[error] (bar/*:update) sbt.ResolveException: unresolved dependency: baz#baz_2.11;0.1-SNAPSHOT: not found
[error] Total time: 1 s, completed Jan 13, 2015 11:42:51 AM
我怎样才能让两个项目都可以使用baz?
【问题讨论】:
-
您是否尝试过
crossPaths := false选项来完全忽略 scala 版本? -
您可能会遇到一些可比性问题(不是 100%),但老实说,您的情况无论如何都很难闻;所以我建议这是一个临时修复,直到你让 foo 和 baz 都使用 2.11.4。
标签: scala sbt sbt-0.13 cross-build