Tôi có một dự án sử dụng Scala 2.10 và một dự án sử dụng Scala 2.11. Chúng phụ thuộc vào một dự án chung, có thể biên dịch với cả hai.Làm thế nào để có tiểu dự án SBT với nhiều phiên bản Scala?
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"
)
Và sau đó
$ 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
Làm thế nào tôi có thể có baz
sử dụng bởi cả hai dự án?
Bạn đã thử tùy chọn 'crossPaths: = false', để bỏ qua các phiên bản scala chưa? –
Có một cơ hội mà bạn sẽ có một số vấn đề so sánh (không phải 100%), nhưng phải trung thực tình huống của bạn có mùi xấu; vì vậy tôi sẽ đề nghị điều này như là một sửa chữa tạm thời, cho đến khi bạn thực hiện * foo * và * baz * sử dụng 2.11.4 cả hai. –