我的项目发出以下警告:
[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依赖,但它并不像我想象的那么容易。我错过了什么伎俩?
答案 0 :(得分:9)
首先,您需要通过逐个禁用它来找出导致此问题的依赖项。然后你可以使用针对2.9.2编译的那个库的版本,或者如果没有这样的版本,你可以排除依赖。
确定导致问题的依赖关系的一个很好的工具是sbt-dependency-graph。
要排除传递依赖关系,可以使用exclude方法:
libraryDependencies +=
"com.novus" %% "salat" % "1.9.1" exclude("org.scala-lang", "scalap"),
请参阅“排除传递依赖项”下的here。