如何解决重复传递依赖的版本?

时间:2014-08-27 05:56:25

标签: scala sbt dependency-management

我正在尝试用命令sbt clean compile构建sbt项目这里是一个错误:

[error] Modules were resolved with conflicting cross-version suffixes in {file:/C:/project-scala/}module:
[error]    org.json4s:json4s-ast _2.11, _2.10
[error]    org.json4s:json4s-jackson _2.11, _2.10
[error]    com.fasterxml.jackson.module:jackson-module-scala _2.11, _2.10
[error]    org.json4s:json4s-core _2.11, _2.10
[error]    org.json4s:json4s-native _2.11, _2.10
[error]    org.json4s:json4s-ext _2.11, _2.10
java.lang.RuntimeException: Conflicting cross-version suffixes in: org.json4s:json4s-ast, org.json4s:json4s-jackson, com.fasterxml.jackson.module:jackson-module-scala, org.json4s:json4s-core, org.json4s:json4s-native, org.json4s:json4s-ext

很明显,不同版本存在重复的依赖关系,但真正的问题是我的项目不直接依赖于它们。有链(杰克逊只是用来):

chain 1: myProject -> Somelib1 ->  jackson-module-scala _2.11
chain 2: myProject -> Somelib2 ->  jackson-module-scala _2.10

那么如何弄清楚实际的 Somelib1 Somelib2 是什么?

同时 我试图分析依赖关系,但是sbt失败并出现错误,请参阅this question

1 个答案:

答案 0 :(得分:3)

出于某种原因, Somelib1 Somelib2 依赖于不同版本的scala。您忘记了%%sbt dependencies

Sbt也有版本冲突管理器,但是对于不同的scala版本你有不同的工件!:sbt conflict managers

要查看工件依赖关系树,请尝试sbt-dependency-graph plugin

相关问题