Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I solve conflicting cross version suffixes in SBT?

I have a Play project that uses a library that has recently been ported to Scala 2.11.1.

I have also updated Play to Scala 2.11.1.

When I try to run the project, I get:

[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

I tried to detect which is the library that uses scalaz-core-2.10 using sbt-dependency-graph plugin. However, in the dependency graph tree, there is only one appearance of scalaz-core:

info]   | +-org.scalaz:scalaz-core_2.11:7.0.6

So I am not sure which is the library that uses scalaz-core_2.10...How can I detect it?

I have seen here that once I detect it, I could exclude it, but my problem is how to detect which is dependency that I have to exclude.

like image 927
Labra Avatar asked Jul 08 '14 15:07

Labra


1 Answers

Under target/resolution-cache/reports/ are Ivy's resolution report for each configuration. Look for *-compile.xml and *-test.xml and see if you have

<module organisation="org.scalaz" name="scalaz-core_2.10">
   ....
</module>

This should tell you the caller of the module.

like image 156
Eugene Yokota Avatar answered Sep 23 '22 09:09

Eugene Yokota