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?
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 WindowsCmd+Shift+F9
auf dem MacEine Lösung, die devTools verwendet, funktioniert:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
Öffnen Sie die Einstellungen -> Build-Execution-Deployment -> Compiler und aktivieren Sie:
Build Project Automatically.
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 :
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
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 [~ # ~]
Schritt 3: Drücken Sie die Tastenkombination Strg + Umschalt + A & Search Registry Schlüsselwort & Drücken Sie die Eingabetaste
Aktivieren Sie complier.automake.allow.when.app.running & klicken Sie Schließen Taste
Schritt 4: Deaktivieren Sie den Cache in Ihrem bevorzugten Webbrowser
Schritt 5: Fertig !!!
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".
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:
Wechseln Sie in die Projektlaufkonfiguration.
Setzen Sie "Update" -Aktion und "Deaktivierung bei Frame" auf "Klassen und Ressourcen aktualisieren". Und es funktionierte wie ein Zauber.
Sie können eine der folgenden Methoden verwenden, um Thymeleaf-Vorlagen automatisch neu zu laden:
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 .