我正在尝试用命令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
答案 0 :(得分:3)
出于某种原因, Somelib1 和 Somelib2 依赖于不同版本的scala。您忘记了%%
:sbt dependencies
Sbt也有版本冲突管理器,但是对于不同的scala版本你有不同的工件!:sbt conflict managers。
要查看工件依赖关系树,请尝试sbt-dependency-graph plugin