wake-up-neo.com

Spring boot devtools - Das Neuladen statischer Inhalte funktioniert in IntelliJ nicht

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?

27
Wouter

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. 

  • Drücken Sie in OSX Shift+Command+A (Shift+Ctrl+A in Windows) 
  • Geben Sie "Registry" in das angezeigte Suchfeld ein und wählen Sie die Registry aus, um sie zu öffnen.
  • Suchen Sie nach compiler.automake.allow.when.app.running und aktivieren Sie es.

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/

82
Patrick Grimard

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. 

14
Daniil Shevelev

Для пользователей Mac я должен был нажатьCommand+Shift+A

Weitere Informationen zu INTELLIJ finden Sie unter Step1 und Step2.

1
raj vivid

Drücken Sie unter Linux:

Ctrl-Alt-Shift-/

0