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