如何在SBT中解决冲突的交叉版本后缀?
我有一个Play项目,它使用了一个最近已经移植到Scala 2.11.1的库。
我也更新了Play到Scala 2.11.1。
当我尝试运行该项目时,我得到:
[error] Modules were resolved with conflicting cross-version suffixes in {file:/...}:
[error] org.scalaz:scalaz-core _2.11, _2.10
[trace] Stack trace suppressed: run last *:update for the full output.
[error] (*:update) Conflicting cross-version suffixes in: org.scalaz:scalaz-core
我尝试使用sbt-dependency-graph插件来检测哪个库使用scalaz-core-2.10。 但是,在依赖图树中,scalaz-core只有一个外观:
info] | +-org.scalaz:scalaz-core_2.11:7.0.6
所以我不确定哪个是使用scalaz-core_2.10的库...我如何检测它?
我在这里看到,一旦我发现它,我可以排除它,但我的问题是如何检测哪些是依赖项,我必须排除。
在target/resolution-cache/reports/
是每个配置的Ivy的解析报告。 寻找*-compile.xml
和*-test.xml
,看看你有没有
<module organisation="org.scalaz" name="scalaz-core_2.10">
....
</module>
这应该告诉你模块的caller
。
上一篇: How can I solve conflicting cross version suffixes in SBT?