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

まず、依存関係を1つずつ無効にして、この問題の原因となる依存関係を見つける必要があります。次に、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 に答える