Spring boot devtools - перезагрузка статического содержимого не работает в IntelliJ
При создании моего первого приложения загрузки Spring я обнаружил, что мне нужно перезапустить приложение каждый раз, когда я вношу изменения в файл Javascript в /resources/static/some -file.js
Это очень трудоемко.
Когда я перемещаю файлы в папку /webapps/, он работает так, как ожидалось, но файлы не упаковываются в JAR. Документы упоминают об этом, поэтому я не могу продолжать этот путь.
Я прочитал все о spring-boot-devtools
и установил его в своем POM, но hotswapping не работает, чтобы работать. Мне все равно нужно перезапустить все приложение, чтобы увидеть изменение файла Javascript или CSS.
Когда приложение запустится, я вижу строку LiveReload server is running on port 35729
, поэтому spring-boot-devtools
должен что-то делать...
Какими будут шаги для дальнейшего изучения того, что происходит не так?
Я предполагаю, что когда IntelliJ запускает приложение, файлы копируются, поэтому, когда я вношу изменения, я фактически изменяю исходные файлы, а не те, которые используются запущенным приложением.
PS: Я использую Maven, IntelliJ IDEA 15 и Spring Boot 1.3.3 со встроенным сервером Tomcat. Я не уверен, какую команду IntelliJ запускает для запуска приложения. IDE обрабатывает это "автоматически". Возможно, мне нужно изменить конфигурацию запуска?
Ответы
Ответ 1
Вам нужно включить несколько функций в IntelliJ, чтобы сделать эту работу.
Во-первых, существует специфический для проекта параметр, который вам нужно применить в любом проекте, в котором вы хотите использовать devtools. Перейдите в раздел "Настройки" > "Компилятор" и включите "Сделать проект автоматически".
Следующий параметр - это параметр реестра IDEA, который применяется ко всем проектам.
- В OSX нажмите
Shift+Command+A
(Shift+Ctrl+A
в Windows)
- Введите "Реестр" в появившемся окне поиска и выберите реестр, чтобы открыть его.
- Lookup compiler.automake.allow.when.app.running и включить его.
После этого перезагрузите приложение. Вы заметите, что проект продолжает перестраиваться с каждым сделанным вами изменением. Когда вы проверите результат в браузере, вы увидите обновленные статические файлы и код.
Я также написал сообщение в блоге об этом некоторое время назад.
http://patrickgrimard.com/2016/01/18/spring-boot-devtools-first-look/
Ответ 2
Для пользователей Windows следующие шаги:
1) Перейдите в "Файл- > Настройки", затем в "Сборка, выполнение, развертывание" → "Компилятор" и включите флаг "Сделать проект автоматически".
2) Нажмите Ctrl-Alt-Shift-/и выберите "Реестр" в появившемся меню. Включить флаг compiler.automake.allow.when.app.running.
3) Запустите/перезапустите приложение и наблюдайте перезагрузку статического содержимого.