Vorrei suggerire di creare test di integrazione appropriati e utilizzare la seguente configurazione per eseguire i test di integrazione durante la generazione di Maven.
È possibile utilizzare la seguente parte per scaricare tomcat o se è necessario utilizzare un artefatto dal repository.
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<configuration>
<wait>false</wait>
<container>
<containerId>tomcat${tomcat.major}x</containerId>
<zipUrlInstaller>
<url>http://archive.apache.org/dist/tomcat/tomcat-${tomcat.major}/v${tomcat.version}/bin/apache-tomcat-${tomcat.version}.tar.gz</url>
<extractDir>${project.build.directory}/extract/</extractDir>
<downloadDir>${project.build.directory}/download/</downloadDir>
</zipUrlInstaller>
<output>${project.build.directory}/tomcat${tomcat.major}x.log</output>
<log>${project.build.directory}/cargo.log</log>
</container>
<configuration>
<home>${project.build.directory}/tomcat-${tomcat.version}/container</home>
<properties>
<cargo.logging>high</cargo.logging>
<cargo.servlet.port>9080</cargo.servlet.port>
<cargo.tomcat.ajp.port>9008</cargo.tomcat.ajp.port>
</properties>
</configuration>
</configuration>
La parte successiva è utilizzato inizio e distribuire l'applicazione in data Tomcat (che lavora anche con molo).
<executions>
<execution>
<id>start-container</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
<goal>deploy</goal>
</goals>
<configuration>
<deployer>
<deployables>
<deployable>
<groupId>${project.groupId}</groupId>
<artifactId>mod-war</artifactId>
<type>war</type>
<pingURL>http://localhost:9080/mod-war</pingURL>
<pingTimeout>30000</pingTimeout>
<properties>
<context>mod-war</context>
</properties>
</deployable>
</deployables>
</deployer>
</configuration>
</execution>
e, naturalmente, infine, per arrestare il server avviato tramite:
<execution>
<id>stop-container</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
La cosa migliore è quella di mettere questo tipo di configurazione, ecc in un modulo esperto di separato che potrebbe essere chiamata app-it (per il test di integrazione). Il ciclo completo di test può essere semplicemente chiamato da
mvn verify
mentre nella verifica del ciclo di vita della fase di test di integrazione verrà eseguito e che inizia la configurazione di cui sopra. Ma è importante configurare lo maven-failsafe-plugin per far funzionare i test di integrazione. Descrizione dettagliata di questo può essere trovato in Maven Unit- and Integration Test Guide
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.12</version>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
<execution>
<id>verify</id>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
Perché non si può guardare a Tomcat incorporato http://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/startup/Embedded.html –
possibile duplicato di [Howto embed Tomcat 6?] (http://stackoverflow.com/questions/640022/howto-embed-tomcat-6) –
@ArunPJohny: Questo era ESATTAMENTE quello che stavo cercando: funzionava alla grande! Se tu (o chiunque lo desideri) lo metti come risposta, lo accetto :) –