/ / Яка різниця mvn spring-boot: run та Application.main () - spring-boot

У чому відмінність mvn spring-boot: run і Application.main () - spring-boot

Я просто хочу знати, чи є якась різниця між запуском весняного завантажувального програми з:

mvn spring-boot:run

і

java -jar target/the-packaged-file.war (Or in IDE, right click and run java application)

Відповіді:

4 для відповіді № 1

Велике питання.

Ми маємо намір, що між ними немає різниці mvn spring-boot:run і запустити додаток із IDE. Обидва починають основний клас, використовуючи класний шлях проекту. Останнє настійно рекомендується, коли ви працюєте над додатком: якщо ви запускаєте додаток з IDE, ви отримаєте всі приємні функції, такі як налагодження та devtools. Перший використовується, коли вам потрібен стандартний спосіб запуску програми в командному рядку. Плагін Maven також може запустити додаток до етапу тестування інтеграції (див. Розділ start мета плагіна Maven / Gradle). Якщо ви використовуєте збірку для фільтрації деяких ресурсів, ваш IDE повинен пам’ятати, що в іншому випадку деякі дані можуть не фільтруватися під час запуску програми з IDE.

java -jar yourapp.jar працює на остаточному артефакті. Spring Boot піклується про створення класового шляху програми. Відфільтровані ресурси зберігаються в банку. Але врешті-решт, мається на увазі зробити саме те саме.

Тепер ваше запитання є war в цьому. Ви не можете очікувати регулярних war зворотний виклик, щоб застосувати до чогось, що використовується як основний клас. Сказавши це, Spring Boot робить все можливе, щоб надати вам усі інструменти, щоб зробити це послідовним. А war що запускається з запущеного контейнера сервлетівне буде ініціалізовано основний метод, але ініціалізатор сервлетів. Однак у вас є спосіб поділити код ініціалізації, щоб він був послідовним. Мета запуску додатка додасться src/main/webapp так що ці файли також подаються.

TL; DR, якщо ви шукаєте послідовну історію в усіх середовищах, не використовуйте військову упаковку.