为什么 sbt 会针对 Akka 和 ScalaTest 依赖项给出多个依赖项警告?

Why does sbt give multiple dependencies warning with Akka and ScalaTest dependencies?

我刚刚将 ScalaTest 添加到 build.sbt 所以它现在看起来如下:

name := "appname"

version := "1.0"

scalaVersion := "2.11.7"

libraryDependencies ++= Seq(
  "com.typesafe.akka" %% "akka-actor" % "2.4.1",
  "org.scalatest" % "scalatest_2.11" % "2.2.4" % "test"
)

之后我收到警告消息:

SBT project import
         [warn] Multiple dependencies with the same organization/name but different versions. To avoid conflict, pick one version:
         [warn]  * org.scala-lang:scala-reflect:(2.11.2, 2.11.7)
         [warn]  * org.scala-lang.modules:scala-xml_2.11:(1.0.2, 1.0.4)

我还尝试将有关 ScalaTest 的行更改为:

"org.scalatest" %% "scalatest" % "2.2.4" % "test"

但警告仍然与上面相同。

由于我的项目中没有任何地方写 "reflect" 或 "xml",我该如何处理这个问题。我正在使用最新版本的 Akka 和 ScalaTest 以及 Scala 版本 2.11。

在您的特定情况下,这与问题 1933 相关,您现在可以忽略它。您还可以明确指定所需的依赖项版本,以消除警告。

解决方案可能是明确添加 SBT 提议的版本之一。当 libraryDependencies 为:

时,所有警告都会消失
libraryDependencies ++= Seq(
  "com.typesafe.akka" %% "akka-actor" % "2.4.1",
  "org.scalatest" %% "scalatest" % "2.2.4" % "test",
  "org.scala-lang" % "scala-reflect" % "2.11.7",
  "org.scala-lang.modules" %% "scala-xml" % "1.0.4"
)

问题已通过 sbt 0.13.12

解决