How to deploy applications to WildFly using Cargo
Cargo is a thin wrapper that allows you to manipulate various type of application containers (Java EE and others) in a standard way. In this tutorial we will learn how to use it to deploy applications on WildFly from your pom file.
Cargo provides the following APIs and tools:
- A Java API to start/stop/configure any of the supported containers.
- A Java API to (remotely or locally) deploy modules into these containers, be it a server alone, a farm or a cluster.
- A Java API to parse/create/merge JEE modules.
Let’s see how to use it to deploy an application to WildFly. You will need for that a valid pom.xml which is able to build a JEE module, for example a web application.
In order to use Cargo we will include into the pom.xml file a reference to the Cargo Plugin and the containerId, which in our case is “wildfly12x”:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.6.7</version>
<!-- Configuration to use with the container (which will also configure the deployer) -->
<configuration>
<container>
<containerId>wildfly12x</containerId>
<type>remote</type>
</container>
<configuration>
<type>runtime</type>
<properties>
<cargo.remote.username>admin1234</cargo.remote.username>
<cargo.remote.password>Password1!</cargo.remote.password>
</properties>
</configuration>
</configuration>
</plugin>
In order to deploy your application, simply run the Maven goal:
mvn cargo:deploy
In order to undeploy your application, simply run the Maven goal:
mvn cargo:undeploy
In the above example, we have assumed that Cargo will run against a remote WildFly application server. It is also possible to let Cargo donwload a fresh version of WildFly and deploy the application on the top of it. And you can do that with just one line as follows:
mvn clean verify org.codehaus.cargo:cargo-maven2-plugin:run \
-Dcargo.maven.containerId=wildfly12x \
-Dcargo.maven.containerUrl=http://download.jboss.org/wildfly/12.0.0.Final/wildfly-12.0.0.Final.zip