В Maven есть понятие «область действия» для зависимостей.Вы, вероятно, знаете область действия test
, которая используется для зависимостей модульных тестов, которые не должны входить в конечный продукт.Используйте эту область для junit
.
. Вам нужна область provided
для зависимостей Tomcat.Это говорит Maven: «Не включайте его; когда код запускается, кто-то другой позаботится о том, чтобы эта зависимость находилась в пути к классам».
Зависимость log4j-over-slf4j
необходима, когда одна из ваших зависимостей все еще используетlog4j для входа.log4j-over-slf4j
содержит код для перенаправления этих вызовов на logback
.
Теперь вы столкнетесь с ситуацией, когда вы не можете изменить область действия, потому что она находится в POM другого человека.
Правильным решением здесь является определение зависимости с правильной областью действия (и версией) в элементе dependencyManagement
в вашем POM.Это определение будет использоваться, когда любой POM запрашивает эту группу + artifactId.Таким образом, даже когда возникает какая-то глубокая зависимость Spring Boot, ваша WAR будет построена с версией и областью действия из элемента dependencyManagement
.
См. Также: