У меня возникла проблема с Maven, когда в моем проекте A на библиотеку com.google.guava
ссылаются примерно полдюжины раз по нескольким слоям переходных зависимостей.Почти для всех этих зависимостей требуется старая версия 18.0
.
. Я написал еще одну зависимость B , которая также используется в проекте A .Эта зависимость напрямую зависит от версии 28.0
из com.google.guava
, но Maven по-прежнему выбирает 18.0
из-за более новой версии.
Если я явно не включу более новую версию во все проекты в зависимости от B , библиотека будет нефункциональна из-за NoMethodError
с и тому подобное.Если я это сделаю, то, вероятно, у меня возникнут проблемы с всеми остальными библиотеками из-за новой бинарно-несовместимой версии зависимости.
По сути, я испытываю групповое давление, чтобы использовать старую версиюзависимость, потому что все остальные делают это .
Почему бы Maven не выбрать вместо этого самую новую версию?Что я могу сделать, чтобы убедить Maven использовать более новую версию во всех проектах в зависимости от B ?
Есть ли способ разделить проблемы и иметь все другие зависимости на самом делеиспользуйте 18.0
, в то время как моя зависимость использует 28.0
?
Если только немного больший размер пакета является призом для оплаты более современных библиотек во всех проектах ...
Может быть, естьвозможность жестко связать определенную версию зависимости для моей библиотеки B , поэтому только моя библиотека использует более новую версию?