2010-03-03 9 views
14

Ich habe ein Spring Roo-Projekt und ich verwende mvn jetty:run, um meine App zu starten. Das einzige Problem ist, Änderungen an den *.java Klassen nicht Hot-Deployment, während Änderungen an *.jspx Hot-Bereitstellung fein.hot in Embedded Jetty

Also, wie kann ich mvn jetty zu hotdeploy für Java-Klassen konfigurieren?

Antwort

22

Sie müssen die scanIntervalSeconds auf einen Wert größer 0 gesetzt, damit es:

scanIntervalSeconds - Das Intervall in Sekunden, um die Webapp für Änderungen scannen und die bei Bedarf den Kontext neu zu starten. Ignoriert, wenn Neuladen aktiviert ist. Standardmäßig deaktiviert Der Standardwert ist:

<plugin> 
    <groupId>org.mortbay.jetty</groupId> 
    <artifactId>maven-jetty-plugin</artifactId> 
    <version>6.1.22</version> 
    <configuration> 
    <scanIntervalSeconds>1</scanIntervalSeconds> 
    </configuration> 
</plugin> 

Einmal aktiviert, wird die Anlegestelle Maven Plugin das Verzeichnis in classDirecory definiert scannen (die durch zu ${project.build.outputDirectory} Punkte: 0.

So ist die Konfiguration könnte wie folgt aussieht Standard zB target/classes) für Änderungen.

Sie müssen dann nur Ihre IDE kompilieren Klassen in target/classes (oder mvn compile ausführen) und Jetty wird den Kontext bei Änderungen an Java-Klassen neu starten.

+0

Vielen Dank! :) – portoalet

+0

Es gibt 404 Fehler, während Jetty die Klassen neu verteilt. Irgendwelche Vorschläge, wie man sie vermeidet? Siehe auch diese Frage: http://stackoverflow.com/questions/23343243/jetty-404-error-page-on-hot-deployment – tholu

+1

Leider erfordert die erneute Bereitstellung ohne Ausfallzeit eine Menge Aufwand in der Java-Welt :(Edit: Will versuchen Sie dies: http://www.rafaelsteil.com/zero-downtime-deploy-script-for-jjety/ – tholu