Использование compose bom в библиотеке приводит к разрешенной пустой версии в модуле, отличном от bom.
Я работаю над библиотекой Central Compose Library , которая использует Compose BOM версии 2023.05.01. У нас также есть библиотека Small Team Library , которой нет в Compose BOM, и которая зависит от Central Compose Library.
Библиотека небольшой группы является частью основного приложения , которое также использует Compose BOM.
Традиционно разрешение зависимостей по умолчанию означает, что версии CCL загружаются при добавлении CCL в качестве зависимости в STL. Однако по какой-то причине Gradle, похоже, разрешает библиотеки Compose BOM CCL как пустую версию (вместо использования реальной версии, которая была разрешена с использованием версии CCL Compose BOM).
Мы не видим этой проблемы при непосредственном добавлении зависимости от CCL в основное приложение, но мы видим, когда CCL является зависимостью, добавляемой в библиотеку небольшой группы.
По этой причине, если STL не имеет прямой зависимости от ВСЕХ библиотек компоновки, которые используются в CCL, разрешение зависимостей Gradle завершится неудачно, поскольку он считает (и это справедливо), что версия без номера версии не существует.
Это очевидно, если посмотреть на трассировку стека. Обратите внимание на странное пустое пространство между последним двоеточием и точкой, указывающее на то, что номер версии не найден.
> Could not resolve all files for configuration ':small-teamlibrary:debugRuntimeClasspath'.
> Could not find androidx.compose.ui:ui-tooling: .
Если не заставлять все STL сразу использовать Compose BOM во всей компании, есть ли лучшее решение для этой проблемы?
С использованием