Aplikacja tomcat7-maven-plugin
umożliwia uruchomienie bieżącego projektu jako aplikacji sieci Web i można podać dodatkowe <webapps>
, które będzie jednocześnie ładowane do tomcat.Wtyczka Tomcat - Maven: uruchamia webappy, ale nie ma bieżącego projektu.
Mój projekt nie jest aplikacją internetową, ale ma dostęp do usług świadczonych przez aplikacje internetowe. Jak więc można wdrożyć wiele aplikacji internetowych bez uruchamiania samego projektu jako aplikacji internetowej? Poniższy fragment Mavena prowadzi do FileNotFoundExceptions, ponieważ nie można znaleźć pliku context.xml.
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0</version>
<executions>
<execution>
<id>run-tomcat</id>
<phase>${tomcat.run.phase}</phase>
<goals><goal>run-war-only</goal></goals>
<configuration>
<webapps>
<webapp>
<contextPath>/my/app1</contextPath>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<type>war</type>
<asWebapp>true</asWebapp>
</webapp>
... possibly more webapps ...
</webapps>
</configuration>
</execution>
<execution>
<id>tomcat-shutdown</id>
<phase>${tomcat.shutdown.phase}</phase>
<goals><goal>shutdown</goal></goals>
</execution>
</executions>
</plugin>
Obejście:
Chociaż sama aplikacja nie jest webapp, trzeba skonfigurować path
i contextFile
do niego:
<configuration>
<path>/my/non/existing/webapp</path>
<contextFile>src/test/resources/context.xml</contextFile>
<webapps>
...
Podany context.xml
plik musi istnieć . Następujące pracował dla mnie, mimo że plik web.xml
nie istnieje:
<?xml version="1.0" encoding="utf-8"?>
<Context path="/my/non/existing/webapp">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
Czy możesz opublikować odpowiednie logi z pliku maven? – ben75
A więc, Dominik, otrzymujesz odpowiedź nieco ponad godzinę po opublikowaniu pytania, ale nie masz grzeczności, by odpowiedzieć? –
Dodałem obejście, które rozwiązuje problem. Ale wciąż mam nadzieję, że jest lepszy sposób na zrobienie tego ... – dokaspar