Deploy/Undeploy Examples

Deploying your application

The plugin goals deploy, undeploy, and redeploy can be used to deploy, undeploy and redeploy applications to a JBoss Application Server. The first step is to add the appropriate configuration to your plugin configuration in the POM.

<project>
    ...
    <build>
        ...
        <plugins>
            ...
            <plugin>
                <groupId>org.jboss.as.plugins</groupId>
                <artifactId>jboss-as-maven-plugin</artifactId>
                <version>7.9.Final</version>
            </plugin>
            ...
        </plugins>
        ...
    </build>
...
</project>

The file listed under the filename parameter can be deployed to the server using the deploy goal.

  mvn jboss-as:deploy

The file can later be redeployed or undeployed using the appropriate goals.

  mvn jboss-as:redeploy
  mvn jboss-as: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.jboss.as.plugins</groupId>
                <artifactId>jboss-as-maven-plugin</artifactId>
                <version>7.9.Final</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.jboss.as.plugins</groupId>
                <artifactId>jboss-as-maven-plugin</artifactId>
                <version>7.9.Final</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.jboss.as.plugins</groupId>
              <artifactId>jboss-as-maven-plugin</artifactId>
              <version>7.9.Final</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 domain tag as well as specify at least one server group.

<project>
    ...
    <build>
        ...
        <plugins>
            ...
            <plugin>
                <groupId>org.jboss.as.plugins</groupId>
                <artifactId>jboss-as-maven-plugin</artifactId>
                <version>7.9.Final</version>
                <configuration>
                    <domain>
                        <server-groups>
                            <server-group>main-server-group</server-group>
                        </server-groups>
                    </domain>
                </configuration>
            </plugin>
            ...
        </plugins>
        ...
    </build>
...
</project>

Deploying your application without launching it.

JBoss AS allows content to be disabled or enabled via the management interface. The default deployment goals above will automatically enable the content, which may not be desirable. To avoid this, change the deployEnabled parameter.

<project>
    ...
    <build>
        ...
        <plugins>
            ...
            <plugin>
                <groupId>org.jboss.as.plugins</groupId>
                <artifactId>jboss-as-maven-plugin</artifactId>
                <version>7.9.Final</version>
                <executions>
                    <execution>
                        <phase>install</phase>
                        <goals>
                            <goal>deploy</goal>
                        </goals>
                        <configuration>
                            <deployEnabled>false</deployEnabled>
                        <configuration>
                    </execution>
                </executions>
            </plugin>
            ...
        </plugins>
        ...
    </build>
...
</project>