14

我的项目给出以下警告:

[warn] Potentially incompatible versions of dependencies of {file:/some/path/}default-5bae4a:
[warn]    org.scala-lang: 2.9.2, 2.9.1

我有以下依赖项:

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"
)

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

4

1 回答 1

10

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

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

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

libraryDependencies +=
    "com.novus" %% "salat" % "1.9.1" exclude("org.scala-lang", "scalap"),

请参阅“排除传递依赖项”下的此处。

于 2013-01-02T13:46:56.673 回答