Maven
...
3 Archetypes
Maven 2 / Maven 3 has 3 has a powerful feature called Archetype.
As part of the Cargo project we have created some archetypes that you can use to get a working sample project that uses the Cargo Maven 2 / Cargo Maven 3 plugin.
Single Webapp Module Archetype
This is the most basic example, showing how to configure Cargo and Maven 2 / Maven 3 to run functional tests directly from a single webapp module. To run it, execute (one one line):
...
where <version> is the version of the Cargo Archetype, as a result the CARGO version to use.
The Maven 2 / Maven The Maven 3 archetype plugin will then ask you what groupId
, artifactId
, version
, and package
you would like to use for generation. Once your Maven 2 / Maven your Maven 3 project is generated, simply run:
...
That archetype also demonstrates another powerful feature of Codehaus Cargo coupled with Maven 2 / Maven 3. If you now run:
Code Block |
---|
mvn clean verify -P tomcat8x |
the same steps will be done with Tomcat instead of Jetty; thanks to Maven 2 / Maven 3's profiles.
The archetype actually ships with Maven 2 / Maven 3 profiles for the jetty9x (default), jetty7x, tomcat8x, jonas5x, jboss71x, glassfish3x, geronimo3x and wildfly10x containers. We tried to show with these archetypes as many examples as possible, so you will find that:
...
You can of course add and use any other container from the Containers list.
Anchor | ||||
---|---|---|---|---|
|
Separate Functional Test Module Archetype
Shows how to configure Cargo and Maven 2 / Maven and Maven 3 to run functional tests by creating a functional tests module next to the webapp module. To run it, execute (one one line):
...
Anchor | ||||
---|---|---|---|---|
|
DataSource Definition Archetype
Shows how to configure Cargo and Maven 2 / Maven and Maven 3 to for a more complex setup, in particular with DataSource definitions. This includes:
...
As in the other examples, what's interesting to see is that the DataSource definition on CARGO remains the same even if you switch container; as CARGO handles all the container-specific DataSource setup steps.
Archetype showing the starting and stopping of multiple containers simultaneously
Shows how to configure the various Maven capabilities together with the Codehaus Cargo Ant tasks in order to be able of starting (and stopping) multiple containers at the same time. To run it, execute (one one line):
...
where <version> is the version of the Cargo Archetype, as a result the CARGO version to use.
Anchor | ||||
---|---|---|---|---|
|
Webapp Creation and Remote Deployment Archetype
This example shows you how to use Cargo to deploy your webapp to a running container remotely and perform integration tests on it. That container can therefore be running on any machine. To run it, execute (one one line):
...
where <version> is the version of the Cargo Archetype, as a result the CARGO version to use.
Once your Maven 2 / Maven your Maven 3 project is generated, simply run:
...
- servlet.port changes the target servlet port, the archetype sets it to
8080
- hostname changes the target servlet's hostname, the archetype sets it to
localhost
- username sets the username, the archetype sets it to
admin
- password sets the password, the archetype sets it to an empty password
This archetype ships with Maven 2 / Maven with Maven 3 profiles for the following containers:
- tomcat8x (default), using the Tomcat manager
- jetty9x. Before using the Jetty remote deployer, please read: Jetty Remote Deployer.
- jonas5x
- jboss7x, including adding in the special dependencies for the JBoss remote deployer. For more details, please read: JBoss Remote Deployer.
- glassfish3x, including adding in the GlassFish-specific dependencies for JSR88. For more details, please read: JSR88.
Anchor | ||||
---|---|---|---|---|
|
Daemon Archetype
Shows how to configure Cargo and Maven 2 / Maven and Maven 3 to use the Cargo Daemon's features in order to remotely start the container, deploy your deployable on it, do some tests, and shut the server down remotely. To run it, execute (one one line):
...
where <version> is the version of the Cargo Archetype, as a result the CARGO version to use.
The Maven 2 / Maven The Maven 3 archetype plugin will then ask you what groupId
, artifactId
, version
, and package
you would like to use for generation. Once your Maven 2 / Maven your Maven 3 project is generated, you need to first start the Cargo Daemon. Then, simply run:
...
The archetype actually ships with Maven 2 / Maven with Maven 3 profiles for the jetty9x (default), tomcat8x, jonas5x, jboss71x, glassfish3x, geronimo3x and wildfly10x containers.
...