2012-12-18 8 views
8

Ich verwende IntelliJ mit Tomcat 6, um eine Spring Java EE-Anwendung auszuführen. Anstatt den kompilierten Krieg zu implementieren, habe ich mich dafür entschieden, die explodierte War-Implementierung zu verwenden und mir somit die Möglichkeit zu geben, einige Klassen und JSPs zu Hotswap zu machen.Was ist der Unterschied zwischen "Neu bereitstellen" und "Server neu starten" in IntelliJ?

Abgesehen von den "Update-Klassen" und "Update-Klassen und Ressourcen" ermöglicht IntelliJ Benutzern auch "Neu bereitstellen" und "Server neu starten" bei einer Update-Aktion. Was ist der Unterschied zwischen diesen beiden Möglichkeiten?

Wenn ich meine Methodensignaturen in meiner Klasse ändere oder eine Änderung an meiner Springconfig.xml vornimmt, muss ich den Server neu starten oder ist eine erneute Bereitstellung ausreichend? Ich habe festgestellt, dass ich Klassen, bei denen die mit ihnen verknüpften Funktionssignaturen oder Anmerkungen geändert wurden, nicht einfach hotswapieren kann.

Antwort

12

Restart Server tut genau das, was er sagt, und startet den Tomcatbediener. Ihr Krieg wird beim Serverstart neu aufgebaut und bereitgestellt. Dies ist nützlich, wenn Probleme beim Hot-Swap Ihrer Klassen auftreten.

Reploy wird die gesamte WAR-Datei erneut bereitstellen (ohne den Server neu zu starten), anstatt zu versuchen, geänderte Klassen und andere Ressourcen im laufenden Betrieb auszutauschen.

Siehe auch: http://www.jetbrains.com/idea/webhelp/updating-a-running-java-ee-application.html

In Antwort auf Ihre zweite Frage, eine redeploy ausreichend sein sollte. Dies kann Speicherlecks verursachen und ist oft nur geringfügig schneller als ein vollständiger Neustart.

3

Ressourcen aktualisieren. Alle geänderten Ressourcen (dh alle Anwendungskomponenten außer den Klassen) werden aktualisiert.

Aktualisieren Sie Klassen und Ressourcen. Alle geänderten Ressourcen werden aktualisiert. Geänderte Klassen werden neu kompiliert. Im Debug-Modus werden die aktualisierten Klassen hot-swapped. Im Ausführungsmodus aktualisiert IntelliJ IDEA nur die geänderten Klassen im Ausgabeordner. Ob solche Klassen tatsächlich in der laufenden Anwendung neu geladen werden, hängt von den Fähigkeiten der verwendeten Laufzeit ab.

Neu bereitstellen. Die Anwendung wird aktualisiert und erneut bereitgestellt.

Server neu starten. Der Server wird neu gestartet. Die aktualisierte Version der Anwendung wird beim Serverstart bereitgestellt. Für gepackte Artefakte sind folgende Optionen verfügbar:

Hot-Swap-Klassen. Geänderte Klassen werden zur Laufzeit neu kompiliert und neu geladen. Beachten Sie, dass diese Option nur im Debug-Modus funktioniert. Neu bereitstellen. Die gesamte Anwendung wird neu erstellt und erneut bereitgestellt. Server neu starten. Der Server wird neu gestartet. Die Anwendung wird beim Serverstart neu erstellt und bereitgestellt.

Von: http://www.jetbrains.com/idea/webhelp/run-debug-configuration-tomcat.html