Matias Elorriaga
Matias Elorriaga

Reputation: 9150

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

Today I discover this "experimental" screen in Android Studio.

enter image description here

Some updates says "Gradle promoted library version from..." what means with that?

(I checked the source code and found this: https://github.com/JetBrains/android/blob/master/android/src/com/android/tools/idea/gradle/structure/daemon/analysis/PsModuleAnalyzer.java#L59, but the link in the comment is not really useful)

Upvotes: 12

Views: 3047

Answers (1)

Stanislav
Stanislav

Reputation: 28126

This actually means, that Gradle had found some dependency conflict and used default conflict resolution strategy, which is to prefer a newer version of some dependency.

The link from the comment leads to the Gradle official user guide, where is dependency management is described. The most interesting part of it for you is "How dependency resolution works".

For example, you can have a gson-2.6.0 library in your dependencies, but some of your other dependencies need a gson-2.7 and it's loaded as a transitive dependency. This lead to the situation, that you have 2 different versions of the same library within you dependencies and this is called dependency conflict, because Gradle can't add both jars to the classpath at the same time. So it uses default conflict resolution strategy and promotes the declared version from 2.6.0 to the newer one 2.7.

Upvotes: 11

Related Questions