Сегодня я столкнулся со средой выполнения NoSuchMethodError
, вызванной конфликтом зависимостей гуавы:
Одна из моих сторонних зависимостей, назовем ее A, вызывает HostAndPort.getHost()
, которая определена в некоторой гуаве версия между (18.0, 23.6-jre]. A зависит от guava: 23.6-jre, поэтому он компилируется без каких-либо проблем. Но у меня есть другая зависимость, назовем это B, зависит от guava: 18.0 и, к сожалению, согласно правилу "ближайшие выигрыши", maven выбирает guava: 18.0.
Все отлично работает при компиляции и упаковке, но дьявол выходит во время выполнения, заставляя мою программу взламывать sh, что плохо.
Итак, мне интересно, есть ли способ обнаружить проблему такого рода с помощью таких инструментов, как maven, чтобы я мог их исправить до запуска моей программы?