Beim Erstellen meiner ersten Spring Boot-App habe ich festgestellt, dass ich meine App jedes Mal neu starten muss, wenn ich eine Änderung der Javascript-Datei in /resources/static/some-file.js vornehme
Das ist sehr zeitaufwändig.
Wenn ich die Dateien in den Ordner/webapps/verschiebe, funktioniert es wie erwartet, aber die Dateien werden nicht in ein JAR-Paket gepackt. Die Dokumente erwähnen dies, daher kann ich nicht weiter so vorgehen.
Ich habe alles über spring-boot-devtools
gelesen und habe es in meinem POM installiert, aber das Hotswapping scheint nicht zu funktionieren. Ich muss immer noch die gesamte App neu starten, um eine Änderung der Javascript- oder CSS-Datei zu sehen.
Wenn die App gestartet wird, kann ich die Zeile LiveReload server is running on port 35729
sehen, also muss spring-boot-devtools
etwas tun ...
Was wären die Schritte, um weiter zu untersuchen, was falsch läuft?
Meine Vermutung ist, dass, wenn IntelliJ die App ausführt, die Dateien kopiert werden. Wenn ich also eine Änderung vornehme, ändere ich eigentlich die Originaldateien und nicht die der laufenden App.
PS: Ich verwende Maven, IntelliJ IDEA 15 und Spring Boot 1.3.3 mit dem eingebetteten Tomcat-Server. Ich bin mir nicht sicher, mit welchem Befehl IntelliJ die App startet. Die IDE behandelt dies "automatisch". Vielleicht muss ich meine Laufkonfiguration ändern?
Damit dies funktioniert, müssen Sie einige Funktionen in IntelliJ aktivieren.
Zunächst gibt es eine projektspezifische Einstellung, die Sie für jedes Projekt anwenden müssen, in dem Sie devtools verwenden möchten. Gehen Sie zu Voreinstellungen> Compiler und aktivieren Sie "Projekt automatisch erstellen"
Die nächste Einstellung ist eine Registrierungseinstellung IDEA, die für alle Projekte gilt.
Shift+Command+A
(Shift+Ctrl+A
in Windows) Starten Sie danach Ihre App neu. Sie werden feststellen, dass das Projekt bei jeder Änderung, die Sie vornehmen, immer wieder neu erstellt wird. Wenn Sie das Ergebnis im Browser auschecken, werden sowohl statische Dateien als auch Code aktualisiert.
Ich habe vor einiger Zeit auch einen Blogbeitrag darüber geschrieben . http://patrickgrimard.com/2016/01/18/spring-boot-devtools-first-look/
Für Windows Benutzer sind die Schritte:
1) Gehen Sie zu Datei-> Einstellungen, dann zu "Erstellen, Ausführen, Bereitstellen" -> Compiler und aktivieren Sie das Flag "Projekt automatisch erstellen".
2) Drücken Sie Strg-Alt-Umschalt-/und wählen Sie "Registrierung" aus dem angezeigten Menü. Aktivieren Sie das Flag "compiler.automake.allow.when.app.running".
3) Starten/starten Sie die App neu und beobachten Sie, wie der statische Inhalt neu geladen wird.
Для пользователей Mac я должен был нажатьCommand+Shift+A
Weitere Informationen zu INTELLIJ finden Sie unter Step1 und Step2.
Drücken Sie unter Linux:
Ctrl-Alt-Shift-/