Gradle: how to display where a dependency conflict arises

六月ゝ 毕业季﹏ 提交于 2019-12-17 11:21:39

问题


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?


回答1:


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" }.



来源:https://stackoverflow.com/questions/21311727/gradle-how-to-display-where-a-dependency-conflict-arises

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!