2010-05-03 9 views
10

Ich benutze NetBeans 6.8, Tomcat 6 und Maven 2.2 und möchte Änderungen in meinem Code sofort im Browser sehen (zeigt http://localhost:8080) nach dem Speichern der Datei.Inkrementelle Hot-Deployment auf Tomcat mit Maven und NetBeans

Die Kater-Maven-Plugin hat die folgende Konfiguration:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>tomcat-maven-plugin</artifactId> 
    <version>1.0-beta-1</version> 
</plugin> 

Anschluss an die Ausgabe sollte es an Ort und Stelle Einsatz durchzuführen.

Was kann ich tun, um Änderungen in meinem Java-Code sofort im Browser zu sehen?

Antwort

0

Werfen Sie einen Blick auf Hot Deployment of a Web Application with Maven in NetBeans. Ich schlage auch vor, zu überprüfen, Glassfish Hot Code Re-deployment (on Maven), vor allem die Post über Kompilieren beim Speichern, und um GlassFish zu versuchen, können Sie bessere Ergebnisse erzielen.

+0

Ich habe das gleiche Verhalten auf GlassFish. Das einzige, was passiert ist, ist, dass ich "Tomcat" in den Projekteinstellungen nach meiner GlassFish-Probe nicht auswählen kann :-( – deamon

0

Verwenden Sie das Ziel tomcat:inplace, um Ihre Webanwendung über die kompilierten Klassen und Quellen aufzurufen.

Sie können Dateisperrprobleme unter Windows auftreten. Es gibt mehrere workarounds, wie zum Beispiel das antiJarLocking Contat-Attribut, aber im Wesentlichen läuft dies darauf hinaus, dass Ihre Webanwendung nicht richtig heruntergefahren wird, wodurch der Speicher Ihrer VMs nach mehreren Neuladungen erschöpft sein wird. In meinem Fall verwendete ich Spring, und die "richtige" Lösung bestand darin, bei einigen Key-Beans eine destroy-Methode hinzuzufügen, damit die App ordnungsgemäß heruntergefahren wurde.

Maven Tomcat Plugin - tomcat:inplace

1

ich viel Zeit damit verbracht, diese Arbeit zu bekommen. Endlich habe ich nur Anlegesteg benutzt. Ich habe dies:

<plugin> 
      <groupId>org.mortbay.jetty</groupId> 
      <artifactId>jetty-maven-plugin</artifactId> 
      <version>${jetty.version}</version> 
      <configuration> 
       <reload>automatic</reload> 
       <scanIntervalSeconds>5</scanIntervalSeconds> 
      </configuration> 
    </plugin> 

Vielleicht alle Parameter sind nicht korrekt, aber dann habe ich ein eigenes Ziel von ‚Anlegesteg: run‘ Und ich benutze das. Ich kann den großen grünen Spielknopf 'Ausführen' nicht benutzen, aber der Jetty-Deploy funktioniert gut und er implementiert alle Änderungen in den Java-Klassen.

1

Werfen Sie einen Blick auf JRebel. Es sollte tun, was Sie wollen. Schmerzlos.