Java Reference
In-Depth Information
<version>1.0-beta-2</version>
<executions>
<execution>
<id>start-container</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>stop-container</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
<configuration>
<wait>false</wait>
<timeout>20000</timeout>
<container>
<containerId>tomcat5x</containerId>
<zipUrlInstaller>
tomcat-5/v5.5.25/bin/apache-tomcat-5.5.27.zip</url>
<installDir>${basedir}/install</installDir>
</zipUrlInstaller>
</container>
<configuration>
<deployables>
<deployable>
<location>cactifiedByMaven2.war</location>
<pingURL>
http://localhost:8080/test/</pingURL>
<properties>
<context>/test</context>
</properties>
</deployable>
</deployables>
</configuration>
</configuration>
</plugin>
<!-—Continue with listing 14.20 here -->
The
next plug-in declaration is for the
cargo-maven2-plugin
, which we use to
declare the containers to execute our tests in
G
. As you can see, we attach its
start
goal
to the
pre-integration-test phase to start the container before we execute the
tests
H
. But wait a second; didn't we attach the
cactifywar
goal to the same phase?
What will be the execution order here? In this case, we need two different goals
attached to the same phase, because we have more than one thing to do before the
integration phase of Maven. In this situation, the
cactus
plug-in will execute first,
because it's declared right before the
cargo
plug-in. And here you can see why we
insisted that the
order
of declaration of the plug-ins in the
<build>
section is so
H
I