Я думаю, что это ошибка / функция в Maven. Предположим, у вас есть это дерево зависимостей:
A
+---B
+---C
| +---D
|
+---D
и вы исключаете D
на B
, он все равно будет там, потому что C
также втягивает его. С точки зрения Maven это имеет смысл, поскольку он не пытается понять, существует ли связь между B
и C
. Мы знаем, что они все из весны, но Мэйвен не может быть так уверен.
Решение: Вам нужно продублировать исключение на C
в вашем POM.
Используйте mvn dependency:tree
, чтобы найти все места, где используется D
, и добавьте одно исключение каждое.
И убедитесь, что вы действительно исключаете D
. В приведенном выше примере вы исключаете org.slf4j:slf4j-log4j12
вместо org.slf4j:slf4j-jdk14