Dependencies Gradle:如何显示依赖冲突发生的位置

Dependencies Gradle:如何显示依赖冲突发生的位置,dependencies,gradle,conflict,Dependencies,Gradle,Conflict,我有一个Gradle项目,它有许多依赖项,其中一个解决方法如下: 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.m

我有一个Gradle项目,它有许多依赖项,其中一个解决方法如下:

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

版本1.1必须是可传递依赖项,因为我明确指定了1.0.2。我怎样才能找到这个特定的可传递依赖项的来源?

回答这个问题是
dependencyInsight
任务的全部要点
javax.activation:activation:1.1
com.sun.mail:mailapi:1.4.4
com.sun.mail:smtp:1.4.4
拉入


如果您自己的代码也依赖于
javax.activation
,您可以使用
compile(“javax.activation:activation:1.0.2”){force=true}
强制您的版本。如果没有,您可以强制使用
configurations.all{resolutionStrategy.force“javax.activation:activation:1.0.2”}

是的,我没有意识到。是否有一种方法可以一次显示所有已解决的冲突?您可以执行
configurations.all{resultionstrategy.failOnVersionConflict()}
,在这种情况下,Gradle将强制您在生成脚本中显式解决所有版本冲突。您可以通过
Gradle依赖项获得一些信息。如果需要更多,可以使用
gradle dependencyInsight
(用于特定依赖项)。+1。以下是完整的示例: