Подтвердить что ты не робот

Как лучше всего устранить неполадки "Потенциально несовместимые версии зависимостей" в sbt

В моем проекте появляется следующее предупреждение:

[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, но это не так просто, как я думал, это должно быть. Какой трюк мне не хватает?

4b9b3361

Ответ 1

Сначала вам нужно выяснить, какая зависимость вызывает эту проблему, отключив их по очереди. Затем вы можете использовать версию этой библиотеки, скомпилированную против 2.9.2, или если такой версии нет, вы можете исключить зависимость.

Отличным инструментом для выяснения, какая зависимость вызывает проблему, является sbt-dependency-graph.

Чтобы исключить транзитивную зависимость, вы можете использовать метод exclude:

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

См. здесь в разделе "Исключить транзитивные зависимости".