我怎样才能最好地解决sbt中"可能不兼容的依赖版本"问题

iwe*_*ein 13 scala sbt scala-2.9

我的项目发出以下警告:

[warn] Potentially incompatible versions of dependencies of {file:/some/path/}default-5bae4a:
[warn]    org.scala-lang: 2.9.2, 2.9.1
Run Code Online (Sandbox Code Playgroud)

我有以下依赖项:

libraryDependencies ++= Seq(
  "io.spray"            %   "spray-can"     % "1.0-M3",
  "io.spray"            %   "spray-routing" % "1.0-M3",
  "io.spray"            %   "spray-testkit" % "1.0-M3",
  "io.spray"            %%  "spray-json"    % "1.2.3" cross CrossVersion.full,
  "com.typesafe.akka"   %   "akka-actor"    % "2.0.3",
  "org.mongodb"         %% "casbah"         % "2.4.1",
  "com.novus"           %% "salat"          % "1.9.1",
  "org.specs2"          %%  "specs2"        % "1.12.2" % "test",
  "org.mockito"         % "mockito-all"     % "1.9.0" % "test"
)
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚如何摆脱org.scala-lang 2.9.1依赖,但它并不像我想象的那么容易.我错过了什么伎俩?

Kim*_*bel 9

首先,您需要通过逐个禁用它来找出导致此问题的依赖项.然后,您可以使用针对2.9.2编译的库的版本,或者如果没有此类版本,则可以排除依赖项.

找出导致问题的依赖关系的一个很好的工具是sbt-dependency-graph.

要排除传递依赖项,可以使用exclude方法:

libraryDependencies +=
    "com.novus" %% "salat" % "1.9.1" exclude("org.scala-lang", "scalap"),
Run Code Online (Sandbox Code Playgroud)

这里下的"排除传递依赖".