Blog

Inplace- oder On-the-fly-Bearbeitung von Java-Webapps

Balaji D Loganathan

Aktualisiert Oktober 23, 2025
3 Minuten

Bei der Entwicklung und dem Testen von Java EE-Webanwendungen benötigen Sie oft eine Möglichkeit, die Änderungen, die Sie an Ihrer JSP, Ihrem HTML oder Javascript vorgenommen haben, sofort im Web zu sehen.

Diejenigen, die Eclipse oder intelliJ als IDE verwenden, möchten vielleicht auch sehen, dass ihre Änderungen in den serverseitigen Java-Dateien sofort auf die bereitgestellte Webapp angewendet werden.

Sehen wir uns an, wie dies mit Maven gemacht werden kann Um die Änderungen sofort zu sehen, bearbeiten die Benutzer diese Dateien im explodierten Verzeichnis unter webapp. Später müssen sie die Änderungenmanuell in ihren ursprünglichen Arbeitsbereich kopieren. Dies ist bei Projekten mit aktivierter Versionskontrolle ein Problem.

Maven kommt für Resque:)

Einige der üblichen Ziele, die im Maven-basierten Build-Prozess verwendet werden, sind Test, Clean, Package und Install. Abgesehen davon bietet Maven hervorragende Plugin-Fähigkeiten. Eines dieser Plugins ermöglicht es Ihnen, Ihre Webapplikation direkt auf Ihrem Java-Anwendungsserver wie Tomcat/Jetty/Websphere usw. bereitzustellen. Sehen wir uns an, wie wir dieses Plugin für die Inplace- oder On-the-Fly-Bearbeitung nutzen können und trotzdem mit dem Versionskontrollsystem in Kontakt bleiben.

Mit Tomcat

Das Tomcat Maven-Plugin bietet viele Möglichkeiten, mit Webapps zu spielen. Wenn Sie beispielsweise mvn tomcat:run im Stammverzeichnis des Maven-basierten Webapp-Projekts ausführen, wird die Webapp exploded war im eingebetteten Tomcat bereitgestellt. Die bereitgestellte Webapp können Sie unter xebia.com/blog:8080/

Wenn Sie Änderungen an den Quellordnern jsp's, html oder javascript vornehmen, können Sie die Änderungen sofort sehen, indem Sie den Browser aktualisieren.

Nun kann es auch vorkommen, dass Sie Änderungen an der serverseitigen Java-Datei vornehmen und sehen möchten, dass diese sofort auf die bereitgestellte War-Datei angewendet werden.

Beachten Sie, dass Sie die Bearbeitung in einer IDE wie Eclipse oder IntelliJ vornehmen müssen, damit dies funktioniert.

Das war:inplace Ziel von Maven hilft uns dabei, dies einfach zu tun. Wenn Sie mvn war:inplace ausführen, wird die explodierte Webapp innerhalb von src/main/webapp erstellt.

Beachten Sie, dass dieses Ziel keine Voraussetzungen hat. Wann immer Sie es also verwenden, müssen Sie auch eine Kompilierung oder einen Test durchführen, der vorausgegangen ist, wenn Sie dies wünschen.

Beispiel: mvn clean compile test war:inplace.

Krieg an Ort und Stelle

Beachten Sie, dass das Ziel war:inplace die abhängigen/externen Jars in WEB-INF/lib und die kompilierten Klassen in WEB-INF/classes kopiert. Konfigurieren Sie Ihr Versionskontrollsystem (zum Beispiel Subversion) so, dass diese Dateien ignoriert werden. Sie können auch das clean goal von Maven verwenden, um diese Verzeichnisse zusätzlich zu löschen.

Wenn Sie das Maven-Plugin zu Ihrem Projekt hinzufügen möchten, fügen Sie einfach die folgenden Zeilen in Ihre pom.xml ein. Weitere Informationen hierzu finden Sie auf der Tomcat Maven-Plugin-Seite. [xml] org.codehaus.mojo tomcat-maven-plugin [/xml]

Mit Steg

Das Maven2 Jetty-Plugin bietet Ziele für die Ausführung einer Webanwendung direkt von Maven aus.

Beispiel: mvn jetty:run erstellt das explodierte War und macht es im Root-Kontext für den Jetty-Server verfügbar.

mvn war:inplace jetty:run erledigt die gleiche Aufgabe wie der oben erwähnte Tomcat-Teil.

Um das Jetty-Plugin hinzuzufügen, fügen Sie den folgenden Code zu Ihrer pom.xml [xml] org.mortbay.jetty maven-jetty-plugin 6.1.5

/ 3

src/main/webapp/WEB-INF

*/.jsp

*/.properties */.xml

[/xml]

Anwendungsbeispiel

Ich habe auch ein einfaches, auf Maven basierendes Webanwendungsprojekt beigefügt (Zip-Datei Größe 6kb).

Wenn Sie die oben genannten Dinge ausprobieren möchten, laden Sie die Anwendung bitte hier herunter. Dazu müssen Sie auch Maven2 installiert haben.

Verfasst von

Balaji D Loganathan

Working as a Senior Consultant at Xebia India IT Architects Private Limited, Gurgaon, India.

Contact

Let’s discuss how we can support your journey.