весенний ботинок с Intellij IDE
У меня есть приложение загрузки Spring, которое отлично работает с Intellij IDE. т.е. я начал класс Application, у которого есть основной метод, который делегирует SpringApplication.run. Все отлично работает, кроме горячего. Когда я меняю источник, я вынужден повторно запустить приложение. Даже если я запускаю приложение в режиме отладки, я не вижу работу hotswap. Я видел, что в настройках Intellij Debug включена функция hotswap.
Мое наблюдение показывает, что когда я запускаю приложение springboot, используется класс pathpath
/projects/MyProject/classes/production/....
Файлы под classes/production
не обновляются, когда я меняю код. Intellij IDE компилирует файлы, но не обновляет классы/производственный каталог. Как получить hotswap, работающий с IntelliJ IDE для весенней загрузки?
Ответы
Ответ 1
Обнаружена первопричина. Это не имеет ничего общего с Spring-boot. При изменении моих исходных файлов файлы не были автоматически скомпилированы.
Чтобы перекомпилировать измененные файлы и поменять их:
-
Ctrl+Shift+F9
в Windows -
Cmd+Shift+F9
на Mac
Ответ 2
Решение, использующее devTools, работает:
1 - Добавление devtools к вашему проекту
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
2- Включение автоматической сборки
Откройте "Настройки" → "Сборка-Исполнение-Развертывание" → "Компилятор" и включите:
Build Project Automatically.
3- Обновить значение compiler.automake.allow.when.app.running
нажмите ctrl+shift+A
и найдите registry
. В реестре включите:
compiler.automake.allow.when.app.running
Надеюсь, поможет !
Рекомендации:
Ответ 3
Используйте подпружиненный. Он отлично работает с перегрузкой бобов. Это бесплатная альтернатива JRebel.
Другой способ - использовать DCEVM или hotswapagent
Ответ 4
Я заметил ту же проблему. Я нахожусь в Intellij 13.1.1. и для этого, чтобы переместить измененный класс. Я должен запустить приложение в режиме отладки, а затем после изменения класса выберите "Run-> Обновить измененные классы" вручную.
У меня также есть отладчик, настроенный на hotswap, как указано в http://www.jetbrains.com/idea/webhelp/reloading-classes.html, но, похоже, не работает.
Во всяком случае, по крайней мере работает руководство "Run-> Обновить измененные классы".
Ответ 5
Шаг 1. Добавьте средства разработки для разработчиков
Maven.
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
Gradle.
dependencies {
compile("org.springframework.boot:spring-boot-devtools")
}
Шаг 2: Перейти к файлу | Настройки | Сборка, выполнение, развертывание | составитель
включить Build проект автоматически и применить и ОК
Шаг 3: Нажмите сочетание клавиш Ctrl + Shift + A & Поиск по ключевому слову реестра и нажмите Enter
Включите complier.automake.allow.when.app.running и нажмите кнопку Закрыть
Шаг 4. Отключите кеш в вашем любимом веб-браузере.
Шаг 5: Готово !!!
Смотрите решение на YouTube
Ответ 6
В моем случае даже после добавления инструментов Spring Boot dev и автоматической проверки проекта сборки он не работал. Что было не так:
-
Перейдите в конфигурацию запуска проекта.
-
Установите действие on'Update и "Отключение деактивизации фрейма" как "Обновить классы и ресурсы". И это сработало как шарм.
Ответ 7
Вы можете использовать любой из следующих методов для автоматической перезагрузки шаблонов Thymeleaf:
- Spring Boot Dev Tools
- Изменить путь к шаблонам тимелиста
- Gulp Watch
Я рекомендую часы Gulp, так как они проще в настройке и прекрасно работают:
var gulp = require('gulp'),
watch = require('gulp-watch');
gulp.task('watch', function () {
return watch('src/main/resources/**/*.*', () => {
gulp.src('src/main/resources/**')
//replace with build/resources/main/ for netBeans
.pipe(gulp.dest('out/production/resources/'));
});
});
gulp.task('default', ['watch']);
Теперь введите следующую команду в вашем терминале, чтобы запустить gulp watch:
$ gulp
//OR
$ gulp watch
Я написал сообщение в блоге об автоматической перезагрузке шаблонов Thymeleaf без перезапуска в IntelliJ IDE.
Ответ 8
Вы можете использовать ссылку ниже и следовать процессу, который предоставляется JetBrains для горячей перезагрузки, и она работает отлично.
https://www.jetbrains.com/help/idea/spring-boot.html?fbclid=IwAR1hWkno3ARVCFn9o4Z1eC8n9zC5T9ATLzl-TuEGTWXTZ4uauOwa-AVftr0#configure-application-update-policies-with-devtools
Ответ 9
Вы можете следить за процессом, данным below-