Gradle:什么意思是依赖项有 "promoted version"?

Gradle: what means that a dependency has a "promoted version"?

今天我在 Android Studio 中发现了这个 "experimental" 屏幕。

一些更新说 "Gradle promoted library version from..." 那是什么意思?

(我查了源码发现是这样的:https://github.com/JetBrains/android/blob/master/android/src/com/android/tools/idea/gradle/structure/daemon/analysis/PsModuleAnalyzer.java#L59, 但评论中的 link 并不是很有用)

这实际上意味着,Gradle发现了一些依赖冲突并使用了默认的冲突解决策略,即更喜欢某些依赖的更新版本。

评论中的 link 指向 Gradle 官方用户指南,其中描述了依赖管理。其中最有趣的部分是 "How dependency resolution works".

例如,您的依赖项中可以有一个 gson-2.6.0 库,但您的其他一些依赖项需要 gson-2.7 并且它作为传递依赖项加载。这会导致这种情况,即您的依赖项中有同一个库的 2 个不同版本,这称为依赖项冲突,因为 Gradle 不能同时将两个 jar 添加到类路径中。所以它使用默认的冲突解决策略并将声明的版本从 2.6.0 提升到较新的 2.7.