Gradle:如何显示发生依赖冲突的位置
Posted
技术标签:
【中文标题】Gradle:如何显示发生依赖冲突的位置【英文标题】:Gradle: how to display where a dependency conflict arises 【发布时间】:2014-02-14 05:03:36 【问题描述】:我有一个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。我怎样才能找出这个特定的传递依赖来自哪里?
【问题讨论】:
【参考方案1】:回答这个问题是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 resulutionStrategy.failOnVersionConflict()
,在这种情况下,Gradle 将强制您在构建脚本中明确解决所有版本冲突。
您可以通过gradle dependencies
获得一些信息。如果您需要更多,可以使用gradle dependencyInsight
(针对特定依赖项)。
+1。完整示例:devsbedevin.net/…以上是关于Gradle:如何显示发生依赖冲突的位置的主要内容,如果未能解决你的问题,请参考以下文章
Android Gradle 插件Android 依赖管理 ⑤ ( Gradle 依赖优化 | 命令行查看依赖模块 | 依赖冲突问题 | 依赖传递冲突 | 分库冲突 | 依赖分组不同导致冲突 )