tomcat7-maven-plugin
consente di eseguire il progetto corrente come applicazione Web e di specificare <webapps>
aggiuntivo che verrà caricato simultaneamente in tomcat.Tomcat - Plugin per Maven: esegue webapps ma non progetto corrente
Il mio progetto non è un'applicazione Web, ma accede ai servizi forniti dalle applicazioni web. Quindi, come è possibile distribuire un numero di webapps senza eseguire il progetto stesso come webapp? Il seguente frammento di codice Maven restituisce FileNotFoundExceptions perché non è possibile trovare un contesto.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>
Soluzione:
Anche se l'applicazione in sé non è una webapp, è necessario configurare un path
e un contextFile
per esso:
<configuration>
<path>/my/non/existing/webapp</path>
<contextFile>src/test/resources/context.xml</contextFile>
<webapps>
...
Il context.xml
file specificato deve esistere . Di seguito ha lavorato per me, anche se il file web.xml
non esiste:
<?xml version="1.0" encoding="utf-8"?>
<Context path="/my/non/existing/webapp">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
puoi pubblicare i log rilevanti dell'output Maven? – ben75
Allora, Dominik, hai una risposta poco più di un'ora dopo aver postato la tua domanda ma non hai la cortesia di rispondere? –
Ho aggiunto una soluzione alternativa che risolve il problema. Ma spero ancora che ci sia un modo migliore per farlo ... – dokaspar