I was looking at the Gradle dependency report for my Android project and came across the following statements.
+--- com.google.android.gms:play-services-gcm:11.0.4
| +--- com.google.android.gms:play-services-base:[11.0.4] -> 11.0.4
| | +--- com.google.android.gms:play-services-basement:[11.0.4] -> 11.0.4
| | | \--- com.android.support:support-v4:25.2.0 -> 25.4.0 (*)
| | \--- com.google.android.gms:play-services-tasks:[11.0.4] -> 11.0.4
| | \--- com.google.android.gms:play-services-basement:[11.0.4] -> 11.0.4 (*)
What I don’t understand is com.google.android.gms:play-services-base:[11.0.4] -> 11.0.4
, the use of square bracket and resolving to the same version?
Here is how the dependency has been declared in my project
compile 'com.google.android.gms:play-services-gcm:11.0.4'