我有一个如下所示的根build.sbt
文件:
organization := "com.acme.foo"
name := "foo-parent"
version := "1.0-SNAPSHOT"
scalaVersion := "2.11.2"
scalacOptions := Seq("-unchecked", "-deprecation", "-encoding", "utf8")
resolvers ++= Seq(
"spray repo" at "http://repo.spray.io/"
)
lazy val root = project.dependsOn(rest,backend)
lazy val rest = project
lazy val backend = project.dependsOn(rest).settings(mainClass in (Compile, run) := Some("com.acme.foo.Main"), fork in run := true)
run in Compile <<= (run in Compile in backend)
在backend
和rest
模块中,scalaVersion
也设置为 2.11.2 ,但是当我尝试编译时,我一直收到此错误来自根:
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: com.acme.foo#rest_2.10;1.0-SNAPSHOT: not found
[warn] :: com.acme#foo_2.10;1.0-SNAPSHOT: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
为什么它坚持寻找我的模块的_2.10版本?
答案 0 :(得分:2)
我无法告诉你为什么会这样,但我跟着this answer,它解决了我的问题
有人在评论中问我执行sbt scalaVersion
的结果是什么。最初它是:
[info] backend/*:scalaVersion
[info] 2.11.2
[info] rest/*:scalaVersion
[info] 2.11.2
[info] root/*:scalaVersion
[info] 2.10.3
[info] foo/*:scalaVersion
[info] 2.11.2
在接受来自其他SO帖子的建议后,用以下内容替换我的root&#39; s build文件中的scalaVersion := "2.11.2"
scalaVersion in ThisBuild := "2.11.2"
然后我从sbt scalaVersion
得到了正确的结果,我的编译工作正常:
[info] backend/*:scalaVersion
[info] 2.11.2
[info] rest/*:scalaVersion
[info] 2.11.2
[info] root/*:scalaVersion
[info] 2.11.2
[info] foo/*:scalaVersion
[info] 2.11.2
SBT有时会让我感到困惑......但我必须承认,我并没有投入大量时间来理解它。