Упаковка Spring Boot war: выполнение с дополнительным путем к классам - PullRequest
1 голос
/ 07 августа 2020

Я хотел бы упаковать свое приложение Spring Boot как военный пакет, чтобы

  • развернуть на существующем tomcat
  • автономно с java -jar application.war

с таким же артефактом. Для этого я установил область действия spring-boot-starter-tomcat на provided, чтобы эти зависимости располагались в папке lib-provided.

Я не хочу включать драйвер базы данных в артефакт. При запуске на существующем tomcat я просто добавляю драйвер базы данных (как jar) в его папку lib.

Теперь мой вопрос: как я могу добавить дополнительный путь к классам (например, lib/*) к команде java -jar application.war? Традиционные подходы (например, java -cp lib/* -jar application.war) не работали.

1 Ответ

0 голосов
/ 10 августа 2020

Обнаружено, что Spring Boot использует WarLauncher для запуска исполняемых файлов войны. Итак,

 java -cp drivers/*:application.war org.springframework.boot.loader.WarLauncher

- это рабочая команда командной строки для добавления дополнительных файлов jar в путь к классам без изменения или распаковки файла war.

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