Как Gradle разрешает конфликт версий библиотеки? - PullRequest
0 голосов
/ 21 ноября 2019

В такой конфигурации:

Project
    -ModuleA
        implementation lib:1.1
        implementation project(:ModuleB)
    -ModuleB
        api lib:1.2
    -ExternalJar1
        -lib1.3
    -ExternalJar2
        -lib1.4

Как Gradle определяет, какую версию lib выбрать? В соответствии с этим SO ответом будет выбрана версия 1.4, поскольку она является самой высокой версией, и мы не указали «какие-либо конкретные ограничения для разрешения переходных зависимостей» . Если это правильно, не нарушится ли код ModuleA, если он не ожидает более новой версии? Как я могу это исправить?

Живут ли внешние библиотеки (импортированные файлы jar) в закрытой песочнице - не подвергая свои зависимости пути к классам проекта и не используя зависимости проекта в своем пути к классам? Предполагая, что версии 1.3 и 1.4 не совместимы, я не могу даже принудительно установить одну версию, как предложено в этом SO post , какой вариант мне нужно исправить эту настройку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...