Я использую Ivy для сборки составного приложения из собственных и сторонних библиотек. Плющ используется для управления зависимостями для построения вышеуказанных библиотек. Для каждой библиотеки доступно несколько совместимых версий, которые можно использовать в собранном приложении. Вопрос в том, как я могу направить ivy NOT выбрать последнюю версию зависимости. Позвольте мне проиллюстрировать это следующим примером:
- А [3]: В [. 2.5 +], С [. 1.3 +] 1004 *
означает, что пакет A зависит от пакета B любой версии 2.5.0-2.5.X (в пределах ветки 2.5 нет критических изменений, что означает, что все версии в этом диапазоне совместимы). Та же логика применима к C.
Во время сборки приложения я определяю файл Ivy.xml, который просто говорит:
Это даст команду Ivy извлечь все последние версии B и C в диапазонах, с которыми A совместим. Из-за некоторых бизнес-ограничений я хочу также «сказать»: «вместо последней версии B в определенном диапазоне использовать версию 2.5.6 специально» (допустим, что существует также 2.5.7). Итак, вместо выше, я хочу сказать что-то вроде:
- Применение: [3], В [2.5.6]
Проблема в том, что Айви выселит B [2.5.6] в пользу 2.5.7. Так что придется использовать какой-то менеджер конфликтов. Я думал о последней совместимой с надеждой, что это позволит указать дополнительный диапазон. Я не могу найти пример этого. Это с учетом того, что мое предположение верно, конечно ...