wake-up-neo.com

Spring Boot Hotswap mit Intellij IDE

Ich habe eine Spring Boot-Anwendung, die gut mit Intellij IDE läuft. ich habe die Application-Klasse gestartet, die die Hauptmethode hat, die an SpringApplication.run delegiert. Alles funktioniert super, außer Hotswap. Wenn ich die Quelle ändere, muss ich die Anwendung neu starten. Auch wenn ich die Anwendung im Debug-Modus starte, funktioniert Hotswap nicht. Ich konnte sehen, dass in den Debug-Einstellungen von Intellij Hotswap aktiviert ist.

Meine Beobachtung zeigt, dass beim Ausführen der Springboot-Anwendung der verwendete Klassenpfad mein ist

/projects/MyProject /klassen/produktion /.... 

Dateien unter classes/production werden nicht aktualisiert, wenn ich den Code ändere. Intellij IDE kompiliert die Dateien, aktualisiert jedoch nicht das Klassen-/Produktionsverzeichnis. Wie kann ich mit IntelliJ IDE= für den Frühlingsstart Hotswap ausführen?

50
suman j

Finde die Ursache heraus. Das hat nichts mit Spring-Boot zu tun. Beim Ändern meiner Groovy-Quelldateien wurden die Dateien nicht automatisch kompiliert.

So kompilieren Sie geänderte Dateien neu und tauschen sie aus:

  • Ctrl+Shift+F9 unter Windows
  • Cmd+Shift+F9 auf dem Mac
22
suman j

Eine Lösung, die devTools verwendet, funktioniert:

1 - Hinzufügen von Devtools zu Ihrem Projekt

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
</dependency>

2- Aktivieren der automatischen Erstellung

Öffnen Sie die Einstellungen -> Build-Execution-Deployment -> Compiler und aktivieren Sie:

Build Project Automatically.

3- Aktualisieren Sie den Wert von compiler.automake.allow.when.app.running

drücken Sie ctrl+shift+A und suchen Sie nach registry. Aktivieren Sie in der Registrierung:

compiler.automake.allow.when.app.running

Ich hoffe es hilft !


Verweise :

82
Radouane ROUFID

Verwenden Sie federbelastet . Es funktioniert gut mit Bohnen nachladen. Es ist eine kostenlose Alternative zu JRebel.

Eine andere Möglichkeit ist die Verwendung von DCEVM oder hotswapagent

9

Schritt 1: Add developer tools denpendency

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")
}

Schritt 2: Gehen Sie zu Datei | Einstellungen | Build, Ausführung, Bereitstellung | Compiler

enable Projekt automatisch erstellen & Apply & [~ # ~] ok [~ # ~]

enter image description here

Schritt 3: Drücken Sie die Tastenkombination Strg + Umschalt + A & Search Registry Schlüsselwort & Drücken Sie die Eingabetaste

enter image description here

Aktivieren Sie complier.automake.allow.when.app.running & klicken Sie Schließen Taste

enter image description here

Schritt 4: Deaktivieren Sie den Cache in Ihrem bevorzugten Webbrowser

enter image description here

Schritt 5: Fertig !!!

Sehen Sie sich die Lösung auf YouTube an

Solution

7
shellhub

Ich habe das gleiche Problem auch bemerkt. Ich bin auf der Intellij 13.1.1. und um die geänderte Klasse im laufenden Betrieb zu tauschen. Ich muss die App im Debug-Modus ausführen und dann nach dem Ändern der Klasse manuell "Run-> Reload Changed Classes" auswählen.

Ich habe auch den Debugger auf Hotswap eingestellt, wie in http://www.jetbrains.com/idea/webhelp/reloading-classes.html angegeben, aber nicht scheint nicht zu funktionieren.

Jedenfalls funktioniert zumindest das manuelle Menü "Run-> Reload Changed Classes".

4
user3206144

In meinem Fall hat es auch nach dem Hinzufügen der Spring Boot-Entwicklungstools und dem automatischen Überprüfen des Build-Projekts nicht funktioniert. Was fehlte, war folgendes:

  1. Wechseln Sie in die Projektlaufkonfiguration.

  2. Setzen Sie "Update" -Aktion und "Deaktivierung bei Frame" auf "Klassen und Ressourcen aktualisieren". Und es funktionierte wie ein Zauber.

2
Sameer Khanal

Sie können den unten angegebenen Prozess befolgen.

enter image description here

0
Pankaj Kumar

Sie können eine der folgenden Methoden verwenden, um Thymeleaf-Vorlagen automatisch neu zu laden:

  1. Spring Boot Dev Werkzeuge
  2. Ändern Sie den Pfad der Thymeleaf-Vorlagen
  3. Gulp Watch

Ich empfehle Gulp watch da es einfacher einzurichten ist und funktioniert:

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']);

Geben Sie nun den folgenden Befehl in Ihr Terminal ein, um die Schlucküberwachung zu starten:

$ gulp 
//OR
$ gulp watch

Ich schrieb einen Blogeintrag über automatisches Neuladen von Thymeleaf-Vorlagen ohne Neustart in IntelliJ IDE .

0
attacomsian