Как избежать ручного повторного импорта транзитивной зависимости из саморазрушающегося модуля
Модуль имеет плохую зависимость, которая зависит от нескольких версий одной и той же библиотеки. Эта библиотека не используется никакими другими зависимостями. Если я просто исключаю библиотеку для разрешения конфликта версий, тогда мне нужно импортировать библиотеку, очевидно, в каждый дочерний модуль. Это не удобно и подвержено ошибкам. Можно ли исключить конкретную версию? Я знаю, что исключить тег не поддерживает версию, но, возможно, есть изменения.
1 ответ
Использование <dependencyManagement>
установить версию библиотеки. Это можно сделать в родительском поме. Эта версия перезапишет все версии, которые встречаются в вашем дереве зависимостей.
Он также будет удовлетворять правилу "конвергенции зависимостей" плагина принудительного применения.
Обратите внимание, что Maven всегда будет загружать только одну версию одной и той же библиотеки - если он находит разные версии, он использует механизм разрешения зависимостей. Тем не менее, гораздо лучше разрешить конфликт самостоятельно с помощью RelationshipManagement.