Весенний загрузочный файл войны с ненужными банками - PullRequest
0 голосов
/ 20 марта 2019

Я делаю военную упаковку моего весеннего ботинка. изготовлен стартер tomcat с пружинными пыльниками, удалён плагин maven.

Но я все еще вижу tomcat jdbc и tomcat juli, чтобы назвать несколько (даже junit, но это может быть из других пользовательских зависимостей, так что об этом в этом вопросе). Я использую logback, но я вижу log4j поверх slf4j из стартовой сети.

Могу ли я спросить, как пропустить ненужные банки и сохранить мою упаковку в хорошем состоянии

1 Ответ

0 голосов
/ 20 марта 2019

В Maven есть понятие «область действия» для зависимостей.Вы, вероятно, знаете область действия test, которая используется для зависимостей модульных тестов, которые не должны входить в конечный продукт.Используйте эту область для junit.

. Вам нужна область provided для зависимостей Tomcat.Это говорит Maven: «Не включайте его; когда код запускается, кто-то другой позаботится о том, чтобы эта зависимость находилась в пути к классам».

Зависимость log4j-over-slf4j необходима, когда одна из ваших зависимостей все еще используетlog4j для входа.log4j-over-slf4j содержит код для перенаправления этих вызовов на logback.

Теперь вы столкнетесь с ситуацией, когда вы не можете изменить область действия, потому что она находится в POM другого человека.

Правильным решением здесь является определение зависимости с правильной областью действия (и версией) в элементе dependencyManagement в вашем POM.Это определение будет использоваться, когда любой POM запрашивает эту группу + artifactId.Таким образом, даже когда возникает какая-то глубокая зависимость Spring Boot, ваша WAR будет построена с версией и областью действия из элемента dependencyManagement.

См. Также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...