Deploy/Undeploy Examples

Deploying your application

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>

Deploying other artifacts

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.

Undeployments using Regex-Pattern.

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:

  • first: The first artifact is taken for undeployment. Other artifacts won't be touched. The list of artifacts is sorted using the default collator.
  • all: All matching artifacts are undeployed.
  • fail: Default, Deployment fails.

Deploying your application in domain mode.

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>