@6826627
программист 1С

Spring boot 2.7+Tomcat9+.war: как вынести зависимости WEB-INF/lib в отдельный пакет?

Дано: приложение "kafka-consumer", которое через профили maven собирается в 10 .war-файлов с разными настройками в application.properties.
Публикуется на Tomcat 9.
Каждый .war имеет размер 40 Мб, и содержит в себе все .jar-зависимости, например, log4j, postgres jdbc, jackson и т.д.
В IDEA при сборке jar есть опция "не включать зависимости".
А есть ли способ сделать это для моей ситуации?
Про provided знаю, но не понял, как его использовать. War-файл не деплоится на Tomcat при использовании этого тэга. Но зависимости, да, не попадают в него.
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 2
xez
@xez Куратор тега Java
TL Junior Roo
В джаве все необходимые библиотеки должны быть доступны в classpath. Classpath указывается при запуске java. В томкате, в конфиг файлах, тоже есть переменные, которые добавляются в classpath.
Вам нужно собрать самостоятельно все нужные библиотеки и скопировать их в любую из папок, которые указаны в classpath.
Насколько я помню, одна из них ~tomcat/lib; так же можно указать свою через конфиги.
Зависимости мавен умеет копировать сам: https://maven.apache.org/plugins/maven-dependency-...
Ответ написан
Комментировать
mayton2019
@mayton2019 Куратор тега Java
Bigdata Engineer
Тебе проще всего разбить своей проект на 2 проекта. Первое это нужные jar-библиотеки log4j, postgres jdbc, jackson и сделать просто упаковку их в один артифакт. И второе - это основной код который зависит от этих библиотек.

Связь между проектами можно организовать через maven repository.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы