Может ли плагин Maven shadow завершить сборку, если есть повторяющиеся классы?

плагин Maven Shade объединяет классы Java вашего проекта вместе с его зависимостями в единый über JAR-файл. Если есть какое-либо совпадение (например, две зависимости содержат класс с одним и тем же полным именем), он выдает предупреждение и (если я правильно понимаю) использует последнюю версию этого класса, с которой он сталкивается.

Мне это кажется слишком слабым; такое перекрытие может легко вызвать связывание или другие проблемы во время выполнения, например. когда перекрывающиеся классы содержат разный байт-код.

Можно ли настроить шейд-плагин на сбой сборки при перекрытии вместо того, чтобы просто выдавать предупреждение? Это было бы особенно полезно на сервере CI, где никто не просматривает файлы журналов, чтобы узнать, нет ли каких-либо предупреждений.


person Andrew Swan    schedule 14.12.2010    source источник


Ответы (1)


В плагине такой возможности нет. Я записал проблему с запросом на это (обновление: а также отправил патч , которые каждый может применить сам по мере необходимости).

person Andrew Swan    schedule 14.12.2010
comment
Спасибо за отправку патча. Все равно было бы хорошо, если бы у плагина была возможность завершить сборку, когда есть повторяющиеся классы. - person Kees van Dieren; 30.10.2020