весенний ботинок с 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 проект автоматически и применить и ОК

enter image description here

Шаг 3: Нажмите сочетание клавиш Ctrl + Shift + A & Поиск по ключевому слову реестра и нажмите Enter

enter image description here

Включите complier.automake.allow.when.app.running и нажмите кнопку Закрыть

enter image description here

Шаг 4. Отключите кеш в вашем любимом веб-браузере.

enter image description here

Шаг 5: Готово !!!

Смотрите решение на YouTube

Solution

Ответ 6

В моем случае даже после добавления инструментов Spring Boot dev и автоматической проверки проекта сборки он не работал. Что было не так:

  1. Перейдите в конфигурацию запуска проекта.

  2. Установите действие on'Update и "Отключение деактивизации фрейма" как "Обновить классы и ресурсы". И это сработало как шарм.

Ответ 7

Вы можете использовать любой из следующих методов для автоматической перезагрузки шаблонов Thymeleaf:

  1. Spring Boot Dev Tools
  2. Изменить путь к шаблонам тимелиста
  3. 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.

Ответ 9

Вы можете следить за процессом, данным below-

enter image description here