2015-09-17 20 views
5

Ich benutze Spring Boot 1.3.0.M5 und ich versuche, Vorteile von Devtools zu nutzen. Auf diese Weise können Sie während der Entwicklung Änderungen an Ihrer Anwendung vornehmen und die Anwendung neu starten. Ich habe diese Demo in STS mit Java und Maven gesehen.Spring Boot devtools IntelliJ

Ich versuche, Groovy & Gradle in IntelliJ 14.1 zu verwenden, und ich habe einige Probleme. Hier sind meine Gradle Build Abhängigkeiten.

dependencies { 
    compile("org.springframework.boot:spring-boot-devtools") 
    compile("org.springframework.boot:spring-boot-starter-web") 
    compile("org.codehaus.groovy:groovy") 
    testCompile("org.springframework.boot:spring-boot-starter-test") 
} 

ich einen Controller mit einer Zuordnung erstellt für „/“

package demo 

import org.springframework.web.bind.annotation.RequestMapping 
import org.springframework.web.bind.annotation.RestController 

@RestController 
class HomeController { 

    @RequestMapping("/") 
    public String home(){ 
     "Hello, SpringOne 2GX!" 
    } 

} 

Ich bin in der Lage, die Anwendung auszuführen und besuchen http://localhost:8080 und die Zeichenfolge Druck auf den Bildschirm zu sehen. Wenn ich die Datei ändere, passiert nichts, weil IntelliJ bei Änderungen nicht kompiliert wird. Wenn Sie auf Build> Make Project gehen, kann ich Spring Boot in der Konsole neu laden sehen. Das scheint zu funktionieren, aber wenn ich zurück zur Root-URL gehe, erhalte ich den folgenden Fehler, der im Grunde genommen der ist, den Sie sehen würden, wenn Sie keine Controller hätten.

Whitelabel Fehler Seite

Diese Anwendung hat keine explizite Zuordnung für/Fehler, so dass Sie diese als Ausweich sehen.

Do Sep 17 10:43:25 EDT 2015 Es gab einen unerwarteten Fehler (Typ = Nicht Gefunden, Status = 404). Keine Nachricht verfügbar

Wer weiß, warum das Nachladen für mich nicht richtig funktioniert?

+0

funktioniert es, wenn Sie stattdessen eine "Klasse Klassen" ausführen? – cfrick

+0

@cfrick kein gleiches Problem. Spring Boot wird neu geladen und ich erhalte den White Label Fehler. – cfaddict

+0

und Sie führen dies mit 'Gradle BootRun' aus? – cfrick

Antwort

5

Ich hatte das gleiche Problem in letzter Zeit. Das Problem liegt in der Art und Weise, wie Devtools Änderungen abfängt. Standardmäßig wartet es 1 Sekunde, bis das Kompilieren abgeschlossen ist. Wenn die Klasse nach dieser Zeit nicht im Klassenpfad existiert, betrachten die Devtools die Klasse als gelöscht und starten die Anwendung ohne sie neu.

Meistens dauert es 3 Sekunden im Durchschnitt für den groovigen Kompilierungsprozess auf meiner Maschine. Daher wird die Klasse beim Neustart entfernt.

Die Lösung für dieses Problem ist spring.devtools.restart.pollInterval Eigenschaft in application.properties Datei auf dem Wert von mehr als 1000 (für mich 4000 funktioniert gut) einzustellen.

0

Es ist in Ordnung, wenn Sie das genaue zu scannende Paket angeben. Wie zum Beispiel:

@ComponentScan(basePackages = "com.lsj.web") 
@EnableAutoConfiguration 
public class PlatformApplication { 

    public static void main(String[] args) throws Exception { 
     SpringApplication.run(PlatformApplication.class, args); 
    } 
} 
Verwandte Themen