2016-03-09 11 views
19

Quando ho creato la mia prima app Spring Boot, ho scoperto che ho bisogno di riavviare la mia app ogni volta che apporto un file Javascript in/resources/static/some- file.jsSpring boot devtools - Il caricamento di contenuto statico non funziona in IntelliJ

Questa operazione richiede molto tempo.

Quando si spostano i file nella cartella/webapps /, funziona come previsto, ma i file non sono pacchettizzati in un JAR. I documenti lo menzionano, quindi non posso continuare in questo modo.

Ho letto tutto su spring-boot-devtools e l'ho installato nel mio POM, ma il hotswapping non funziona per funzionare. Devo ancora riavviare l'intera app per vedere un cambio di file Javascript o CSS.

Quando l'applicazione si avvia, posso vedere la linea LiveReload server is running on port 35729, così spring-boot-devtools deve fare qualcosa ...

Quali sarebbero i passi di approfondire cosa c'è di sbagliato?

La mia ipotesi è che quando IntelliJ esegue l'app, i file vengono copiati, quindi quando apporto una modifica, in realtà sto cambiando i file originali e non quelli utilizzati dall'app in esecuzione.

PS: utilizzo Maven, IntelliJ IDEA 15 e Spring Boot 1.3.3 con il server Tomcat incorporato. Non sono sicuro di quale comando esegue IntelliJ per avviare l'app. L'IDE sta gestendo questo "automaticamente". Forse ho bisogno di cambiare la configurazione della mia corsa?

+0

è un progetto di avvio a molla? in avvio di primavera, per impostazione predefinita src/main/resources/templates è il luogo in cui le viste vivono e non la cartella webapps.per favore pubblica pom.xml –

+0

I miei file sono nella giusta posizione. Ho solo provato a spostarli quando ho notato che lo hotswapping non funzionava. Ho restituito i file nella loro posizione originale dopo aver realizzato che non potevo conservare la cartella "webapps". – Wouter

+1

Buon video come funziona in IDEA: https://www.youtube.com/watch?v=VWF7vCJSqrA – GKislin

risposta

71

È necessario attivare un paio di funzioni in IntelliJ per farlo funzionare.

In primo luogo, c'è un'impostazione specifica del progetto che è necessario applicare su qualsiasi progetto in cui si desidera utilizzare devtools. Vai su Preferenze> Compilatore e attiva "Crea progetto automaticamente".

L'impostazione successiva è un'impostazione del registro IDEA valida per tutti i progetti.

  • in OSX, premere Shift+Command+A (Shift+Ctrl+A in Windows)
  • tipo "Registro di sistema" nella casella di ricerca che appare, e selezionare il registro per aprirlo.
  • Cercare compiler.automake.allow.when.app.running e abilitarlo.

Successivamente, riavviare l'app. Noterai che il progetto continua a ricostruire con ogni cambiamento che fai. Quando controlli il risultato nel browser, vedrai sia i file statici che il codice sono stati aggiornati.

Ho anche scritto un post su questo poco fa. http://patrickgrimard.com/2016/01/18/spring-boot-devtools-first-look/

+2

Su Windows: premi Ctrl-Alt-Maiusc-/e seleziona "Registro di sistema" dal menu che appare. –

+0

Aiutato molto, grazie! –

+1

Abbastanza carino. Per me la soluzione definitiva sarebbe che il riavvio del server web si verifica solo quando salvi un file sorgente, non automaticamente. Indagando su questo – Jannik

11

Per gli utenti Windows i passi sono:
1) Vai File-> Impostazioni, quindi a "costruire, esecuzione, distribuzione" -> Compiler e attivare il flag di "Make progetto automaticamente".
2) Premere Ctrl-Alt-Maiusc// e selezionare "Registro di sistema" dal menu che appare. Abilita il flag compiler.automake.allow.when.app.running.
3) Avviare/riavviare l'app e osservare il caricamento del contenuto statico.