Mamy aplikację, która do niedawna była pojedynczym projektem Maven WAR. Używaliśmy wtyczki Maven Tomcat, aby uruchomić aplikację na lokalnych stacjach roboczych deweloperskich przy użyciu:Wtyczka Tomcat Maven i wielomodułowe projekty Maven
mvn tomcat:run
Udało nam się zmienić pliki JSP, natomiast wbudowany instancji Tomcat został uruchomiony, a zmiany pojawią się w przeglądarkach dobrze. Rozumiem (z dokumentacji wtyczki), że przy korzystaniu z tomcat: uruchom cel WAR jest ładowana jako dynamiczna aplikacja internetowa i dlatego zmiany dokonane w plikach JSP u źródła są pobierane przez Tomcat w czasie wykonywania bez ponownego uruchamiania.
Aplikacja osiągnęła dość duży rozmiar i musieliśmy ponownie użyć dużej liczby klas w kilku różnych miejscach poza projektem sieciowym, więc refaktoryzowaliśmy bazę kodu w wielomodułowy projekt Maven. Struktura jest teraz:
parent Maven POM
|
---- artifact1.jar
|
---- artifact2.jar -> depends on artifact1.jar
|
---- artifact3.jar -> depends on artifact1.jar
|
---- artifact4.jar -> depends on artifact2.jar and artifact3.jar
|
---- artifact5.war -> depends on artifact1.jar, artifact2.jar, artifact3.jar and artifact4.jar
Po refaktoryzacji nie byliśmy w stanie użyć tomcat: uruchom z katalogu głównego projektu, aby uruchomić projekt wojnę jako plugin był w stanie wykryć artefakty słoika. Przełączyliśmy się więc na użycie wtyczki tomcat: run-war-only. Moduł WAR uruchamia się teraz dobrze.
Jednak z dokumentacji wydaje się, że celem wojny tylko wojna traktuje pliki WAR jako spakowane aplikacje internetowe. Dlatego wszelkie zmiany, które wprowadzamy w plikach JSP, nie są teraz pobierane przez wbudowany serwer Tomcat podczas działania. Przy każdej zmianie pliku JSP musimy zrestartować serwer.
Czy istnieje sposób dla nas w tym wielomodułowym Maven skonfigurowanym do uruchamiania projektów WAR jako dynamicznych aplikacji internetowych, aby przynajmniej zmiany w plikach JSP zostały pobrane przez Tomcat bez ponownego uruchamiania?
Z pluginami Maven 3.x i Tomcat7 Maven polecenie 'mvn -am -pl artifact5 tomcat7: run' działa dobrze. – manish