sbt中严格的冲突解决发现了奇怪的冲突

时间:2014-10-14 17:41:25

标签: scala sbt

我有一个很大的sbt项目,我们使用严格的冲突解决方案,因此我们必须进行大量的覆盖。

我们得到的更令人费解的冲突是:

com.fasterxml.jackson.core#jackson-databind;2.1.1 (needed by [com.amazonaws#aws-java-sdk;1.8.9.1]) conflicts with com.fasterxml.jackson.core#jackson-databind;2.2.2 (needed by [])

版本2.2.2什么都不需要?

另一个就是这个:

commons-logging#commons-logging;1.1.3 (needed by [org.apache.httpcomponents#httpclient;4.3.1, com.amazonaws#aws-java-sdk;1.8.9.1]) conflicts with commons-logging#commons-logging;1.1.1 (needed by [com.amazonaws#aws-java-sdk;1.8.9.1])

相同的包(aws-java-sdk 1.8.9.1)需要两个不同版本的commons-logging。

我可以通过加入更多替代来轻松解决这些问题,但这让我对冲突解决方案充满信心。这些消息有害吗?如何在没有覆盖的情况下摆脱它们?

1 个答案:

答案 0 :(得分:1)

有一个 SettingKey dependencyOverrides,需要Set[ModuleID]

dependencyOverrides ++= Seq(
  "com.fasterxml.jackson.core" % "jackson-databind" % "2.2.2",
  "commons-logging" % "commons-logging" % "1.1.3"
)

集合中发现的任何依赖冲突都将通过这些覆盖来解决。 有关更多信息,请参阅the docs