Say my dependencies block looks like this (buildType is wii)
dependencies {
wiiCompile 'com.firebaseui:firebase-ui-auth:2.0.0-SNAPSHOT'
wiiCompile 'com.google.android.gms:play-services-auth:10.2.1'
}
The pom.xml dependencies for the firebase-ui-auth dep (at the 2.0.0-SNAPSHOT version) looks like this:
<dependencies>
...
<dependency>
<groupId>com.google.android.gms</groupId>
<artifactId>play-services-auth</artifactId>
<version>[10.2.1,)</version>
</dependency>
...
</dependencies>
If I run:
./gradlew :app:dependencyInsight --configuration wiiCompile --dependency "com.google.android.gms:play-services-auth"
I find out the dependency has been bumped to 10.2.4:
:app:dependencyInsight
com.google.android.gms:play-services-auth:10.2.4 (conflict resolution)
com.google.android.gms:play-services-auth:10.2.1 -> 10.2.4
\--- wiiCompile
com.google.android.gms:play-services-auth:[10.2.1,) -> 10.2.4
\--- com.firebaseui:firebase-ui-auth:2.0.0-SNAPSHOT
\--- wiiCompile
com.google.android.gms:play-services-auth-base:10.2.4
com.google.android.gms:play-services-auth-base:[10.2.4] -> 10.2.4
\--- com.google.android.gms:play-services-auth:10.2.4
+--- wiiCompile
\--- com.firebaseui:firebase-ui-auth:2.0.0-SNAPSHOT
\--- wiiCompile
(*) - dependencies omitted (listed previously)
However if I do this strange POM syntax:
<dependency>
<groupId>com.google.android.gms</groupId>
<artifactId>play-services-auth</artifactId>
<version>10.2.1+</version>
</dependency>
Then things behave as I expect:
com.google.android.gms:play-services-auth:10.2.1
\--- wiiCompile
com.google.android.gms:play-services-auth:10.2.1+ -> 10.2.1
\--- com.firebaseui:firebase-ui-auth:2.0.0-SNAPSHOT
\--- wiiCompile
com.google.android.gms:play-services-auth-base:10.2.1
\--- com.google.android.gms:play-services-auth:10.2.1
+--- wiiCompile
\--- com.firebaseui:firebase-ui-auth:2.0.0-SNAPSHOT
\--- wiiCompile
(*) - dependencies omitted (listed previously)
What’s going on here? Why isn’t [10.2.1,)
the same as 10.2.1+
?