Код: Выделить всё
org.springframework.boot
spring-boot-devtools
true
Поскольку DevTools отслеживает ресурсы пути к классам, единственный способ вызвать перезагрузку — обновить путь к классам. Способ обновления пути к классам зависит от используемой IDE. В Eclipse сохранение измененного файла приводит к обновлению пути к классам и запуску перезапуска. В IntelliJ IDEA сборка проекта (Build -> Build Project) дает тот же эффект.
При работающем приложении я попробовал простой
Код: Выделить всё
touch /path/to/app.jar
Хорошо, возможно, оно делает что-то умнее. Я изменил исходный .java, перекомпилировал .jar и cp заменил работающий .jar-файл, и... ничего не произошло.
Также из документации
DevTools использует перехватчик завершения работы контекста приложения, чтобы закрыть его во время перезапуска. Это не работает корректно, если вы отключили перехватчик завершения работы (SpringApplication.setRegisterShutdownHook(false)).
Я этого не делаю.
DevTools необходимо настроить ResourceLoader, используемый ApplicationContext. Если ваше приложение уже предоставляет его, оно будет обернуто. Прямое переопределение метода getResource в ApplicationContext не поддерживается.
Я этого не делаю.
Я я запускаю это в контейнере Docker, если это имеет значение. Из документации:
Инструменты разработчика автоматически отключаются при запуске полностью упакованного приложения. Если ваше приложение запускается из java -jar или из специального загрузчика классов, то оно считается «рабочим приложением». Если это к вам не относится (т. е. если вы запускаете приложение из контейнера), рассмотрите возможность исключения инструментов разработчика или установите системное свойство -Dspring.devtools.restart.enabled=false.
Я не понимаю, что это значит и актуально ли это.
Я хочу перекомпилировать .jar и заменить его в работающем контейнере Docker, вызвать и перезапуск приложения без перезапуск контейнера. Как я могу это сделать?
РЕДАКТИРОВАТЬ: я использую mvn, чтобы перестроить jar, затем docker cp, чтобы заменить его в работающем контейнере. (IntelliJ IDEA утверждает, что пересобирает проект, но файлы jar на самом деле не затрагиваются, но это уже другая история.) Я ищу решение, не связанное с IDE.
Подробнее здесь: https://stackoverflow.com/questions/671 ... ot-working
Мобильная версия