Рассмотрим очень распространенную ситуацию, когда проект зависит от 2-х библиотек, каждая из которых транзитивно приносит 3-ю библиотеку разных версий:
Project A:
Library B:
Library D: version 1
Library C:
Library D: version 2
Я могу использовать правило зависимостей конвергента для подключаемого модуля maven * обнаружить такие проблемы, а затем напрямую указать версию библиотеки D в pom моего Project A, например, в разделе .
Но это создает еще одну проблему: теперь мне приходится вручную отслеживать версию библиотеки D, даже если мой Проект не использует его напрямую.
Каждый раз, когда я изменяю версию библиотеки B или библиотеки C, я должен помнить, что нужно также обновить версию библиотеки D в моем проекте. Это очень легко забыть!
Есть ли способ сказать maven просто использовать новейшую версию переходной библиотеки?
Что-то вроде:
<dependencyManagement>
...
<dependency>
<groupId>path.to</groupId>
<artifactId>library-D</artifactId>
<version>
<use_newest_one_from_all_transitive_dependencies_please/>
</version>
</dependency>
Есть ли способ достичь этого?