Gradle:如何显示发生依赖冲突的位置 [英] Gradle: how to display where a dependency conflict arises

查看:41
本文介绍了Gradle:如何显示发生依赖冲突的位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个Gradle项目,依赖很多,其中一个是这样解决的:

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

版本 1.1 必须是传递依赖,因为我明确指定了 1.0.2.我怎样才能找出这个特定的传递依赖来自哪里?

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?

推荐答案

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

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.

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

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

这篇关于Gradle:如何显示发生依赖冲突的位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆