BOM-зависимости в Android
Управление зависимостями влияет на стабильность проекта. Разные версии библиотек могут конфликтовать, вызывая ошибки сборки. BOM (Bill of Materials) решает эту проблему, автоматически подбирая совместимые зависимости.
Как работает
• Прописывается в version catalog.
• Артефакт -bom подключается в dependencies через platform(...).
• Зависимости подключаются без явного указания версии (весь список библиотек автоматически не добавится).
• Отдельные версии указываются вручную – BOM их не переопределит.
• Для тестов BOM подключается через testImplementation(platform(...)) и androidTestImplementation(platform(...)).
Спецификаии BOM
• stable (-bom) включает последние стабильные версии каждой библиотеки.
• beta (-bom-beta) включает бета-, релиз-кандидаты (RC) или стабильные версии каждой библиотеки.
• alpha (-bom-alpha) включает альфа-, бета-, RC- или стабильные версии каждой библиотеки.
Версия определяются добавлением суффикса -alpha и -beta к имени артефакта. У стабильной версии его нет.
Какие библиотеки имеют BOM-версию
Посмотреть список можно на специальной странице в каталоге артефактов Maven. Среди них:
• Compose
• Firebase
• Kotlin
• Koin
• Okhttp
• JUnit 5
• Mockito
Если нажать на номер версии и отмотать до вкладки Managed Dependencies, можно увидеть список всех зависимостей, входящих в BOM.