Android gradle: что означают квадратные скобки вокруг версии?

В Android-приложениях Android Android sdk вы найдете два способа добавления зависимости к вашему проекту. В разделе "Начало работы" строка в gradle равна

compile 'com.facebook.android:facebook-android-sdk:4.+'

но в руководстве по быстрому запуску строка

compile 'com.facebook.android:facebook-android-sdk:[4,5)'

Кроме того, Android Studio предупреждает, что вы не должны использовать "+" в номерах версий, что приводит к неповторимым сборкам. Я видел "+" для других зависимостей, и я считаю, что это означает получить последнюю версию при синхронизации gradle, но что означает квадратная скобка и скобки во второй строке?

Ответ 1

Это означает диапазон. [означает включение,) означает до. Таким образом, это будет любая версия, начиная с 4, но меньше 5. так что 4.0, 4.1, 4.99999.9999 будет соответствовать, 5.0 не будет. 4. + означает что-либо 4 или более без верхней границы.

Ответ 2

@GabeSechan что-то странное, хотя у меня есть:

implementation 'com.facebook.android:facebook-android-sdk:[4,5)'

В Android-студии я получаю предупреждение:

Доступна более новая версия com.facebook.android:facebook-android-sdk, чем [4,5]: 4.38.1

это означает, что [4,5] не обязательно импортирует последнюю версию в SDK

Ответ 3

Например

0,1 _ 0,3 _ 1,0 _ 1,1 _ :[0,1) → 0.3 _ 1,2 _ :[1,2) → 1.2 _ 1,3 → -> 1.3 _ 1,4 → -> 1.4