The plugin goals deploy, undeploy, and redeploy can be used to deploy, redeploy and undeploy applications to a WildFly. The first step is to add the appropriate configuration to your plugin configuration in the POM.
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>2.1.0.Beta1</version>
</plugin>
...
</plugins>
...
</build>
...
</project>The file listed under the filename parameter can be deployed to the server using the deploy goal.
mvn wildfly:deploy
The file can later be redeployed or undeployed using the appropriate goals.
mvn wildfly:redeploy mvn wildfly:undeploy
You can also set the deployment operation to execute at a specific phase, for example the install phase.
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>2.1.0.Beta1</version>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
...
</project>It is also possible to deploy other artifacts that are not related to your deployment, e.g. database drivers:
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>2.1.0.Beta1</version>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>deploy-artifact</goal>
</goals>
<configuration>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<name>postgresql.jar</name>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
...
</project>The artifact must be already listed as a dependency in the projects pom.xml.
You are allowed to perform undeployments based on a regex-pattern. This is useful as soon as you use a version identifier within your deployment name. An existing deployment is matched by regex and replaced by the new one. This example below will undeploy the deployment starting with "postgres-".
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>2.1.0.Beta1</version>
<executions>
<execution>
<phase>clean</phase>
<goals>
<goal>undeploy-artifact</goal>
</goals>
<configuration>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>2.1.0</version>
<type>jar</type>
<name>postgresql-2.1.0.jar</name>
<match-pattern>postgresql-.*</match-pattern>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
...
</project>In case multiple deployments match the specified pattern you can decide, how the plugin should behave. You have following options:
Deploying in domain mode works the same as the examples above, except you need to add the server-groups property as well as specify at least one server group.
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>2.1.0.Beta1</version>
<configuration>
<server-groups>
<server-group>main-server-group</server-group>
</server-groups>
</configuration>
</plugin>
...
</plugins>
...
</build>
...
</project>