Gradle: how to display where a dependency conflict arises
I have a Gradle project with many dependencies, one of which is resolved as follows:
gradle dependencyInsight --configuration compile --dependency javax.activation
:dependencyInsight
javax.activation:activation:1.1 (conflict resolution)
+--- com.sun.mail:mailapi:1.4.4
| \--- compile
\--- com.sun.mail:smtp:1.4.4
\--- compile
javax.activation:activation:1.0.2 -> 1.1
\--- compile
Version 1.1 must be a transitive dependency because I explicitly specified 1.0.2. How can I find out where this specific transitive dependency comes from?
Answering this question is the whole point of the dependencyInsight
task. javax.activation:activation:1.1
is pulled in by com.sun.mail:mailapi:1.4.4
and com.sun.mail:smtp:1.4.4
.
If your own code also depends on javax.activation
, you can force your version with compile("javax.activation:activation:1.0.2") { force = true }
. If not, you can force a version with configurations.all { resolutionStrategy.force "javax.activation:activation:1.0.2" }
.