Wildfly Maven Plugin Example
This is an article about using the Wildfly Maven Plugin, a plugin developed by Red Hat that allows you to deploy, undeploy, and manage applications on a JBoss Wildfly Application Server.
You will get a brief introduction about how to install and use the plugin to communicate with your JBoss Wildfly Application Server.
The following table shows an overview of the entire article:
Table of Contents
1. Introduction
1.1 Wildfly Maven Plugin
The Wildfly maven plugin provides management operations, called Goals, that can be executed on a WildFly Application Server. The WildFly Maven Plugin is most often used to deploy applications or artifacts to a running WildFly Application Server. The commands are explicitly executed from the command line or specified in the execution portion of the plugin in the Maven Project Object Model (POM) file. The plugin provides the following goals:
- The wildfly:add-resource Goal – The wildfly:add-resource goal adds a resource to the running WildFly Application Server.
- The wildfly:deploy Goal – The wildfly:deploy goal deploys the application to the running WildFly Application Server.
- The wildfly:deploy-only Goal – The wildfly:deploy-only goal deploys the application to the running WildFly without executing any other goals by default.
- The wildfly:deploy-artifact Goal – The wildfly:deploy-artifact goal deploys an arbitrary artifact to the running WildFly.
- The wildfly:redeploy Goal – The wildfly:redeploy goal will redeploy your application if and only if the application has already been deployed to the application server.
- The wildfly:redeploy-only Goal – The wildfly:redeploy-only goal will redeploy your application if and only if the application has already been deployed to the application server. By default no other goals are invoked.
- The wildfly:undeploy Goal – The wildfly:undeploy goal will undeploy your application from the from the running application server if the application has already been deployed.
- The wildfly:run Goal – The wildfly:run goal will run WildFly and deploy your application. If the wildfly.home property is not set, the server will be downloaded.
- The wildfly:start Goal – The wildfly:start goal will start a WildFly. If the wildfly.home property is not set, the server will be downloaded. The server will be shutdown when the maven process ends unless an explicit shutdown was invoked.
- The wildfly:shutdown Goal – The wildfly:shutdown goal will shutdown a running WildFly.
- The wildfly:execute-commands Goal – The wildfly:execute-commands goal will execute commands, formatted like CLI commands, on the running server.
1.2 Wildfly
Wildfly, formerly known as the JBoss Application Server, is a free open-source application server that provides an environment in which applications can run. Wildfly is written in Java and was originally authored by JBoss but is now actively maintained by Red Hat. Wildfly implements the Java Platform, Enterprise Edition (Java EE) specification and version 10 supports Java 8. Because Wilfly is written in Java, it can run on multiple platforms.
1.3 Maven
Maven is a build automation tool used primarily for Java based projects. The Project Object Model (POM) is a core concept of Maven allowing it to manage a project’s build and the external dependencies used within the project. Maven houses external dependencies in a central repository that is easily accessible.
2. Prerequisites
2.1 Wildfly Application Server
You will need a running Wildfly Application Server either deployed locally or on a cloud PaaS environment, such as Open Shift. For a quick start on setting up a Wildfly Application Server on OpenShift, read my JBoss Wildfly Application Server Tutorial post. For the sake of this tutorial, we will assume that your Wildfly Application Server is running on OpenShift.
2.2 Maven Installation
You will need to have Maven 3.0 or 3.1.x installed locally on your system. If you do not have Maven installed, download and install it.
2.3 Project Based on Maven Template 3.0 or 3.1.x
A project created from Maven template version 3.0 or 3.1.x and JDK 1.7 or higher is required. When provisioning your Wildfly Application Server on OpenShift, a starter Java web application is created and deployed for you. The starter project already uses the version of Maven needed to follow the steps in this tutorial.
3. Installing the Plugin
To install the plugin, add wildfly-maven-plugin to your pom.xml as follows:
<plugin> <groupId>org.wildfly.plugins</groupId> <artifactId>wildfly-maven-plugin</artifactId> <version>1.1.0.Alpha7</version> </plugin>
As of the writing of this tutorial, the latest version of the plugin is 1.1.0.Alpha7; however, feel free to use the latest version if it is different from the version covered in this tutorial.
To determine the latest version, go to the Maven repository for the WildFly Maven Plugin, which displays a screen similar to what’s shown below and identify the latest version.
Select the latest version and reference it in your POM by modifying the “version” number in the POM file to match the latest version.
4. Useful Features
In order to use the features of the Wildfly Maven plugin, ensure that you have setup port forwarding to your OpenShift Wildfly Application server and that you know the name of your application deployed to that server.
For my Wildfly Application Server, the command is shown below, where “jbosswildfly” is the name of my application.
rhc port-forward jbosswildfly
When configuring port forwarding ensure the application is up and running before doing so. To setup port forwarding from your local ports to the ports running on my Wildfly instance at OpenShift, go to a command/terminal window and enter the port forward command.
The port forwarding command does several steps:
- Check for available ports to forward
- Automatically forward available ports to the Wildfly instance
After the ports have been successfully forward, a success screen displays.
The following ports are forwarded:
- 8080 – normal web traffic
- 9990 – administrative port for Wildfly
You may terminate port forwarding at anytime by entering “CTRL-C” in the command/terminal window.
4.1 Deploy an Application
The plugin allows you to deploy your application.
This command will deploy what is listed as the name parameter of the POM file to the Wildfly Application Server. In this case, the name is “jbosswildfly”.
In order to deploy your project, make sure that you are in the same directory where your pom.xml is placed and issue the deploy command:
mvn wildfly:deploy
You will be prompted for the administrative user name and password to your Wildfly Application Server, so enter those values when prompted. A success screen is displayed upon entering valid credentials and your application is deployed.
4.2 Undeploy an Application
The plugin allows you to undeploy an application. In order to undeploy your application, make sure that you are in the same directory where your pom.xml is placed and issue the undeploy command:
mvn wildfly:undeploy
4.3 Add a Resource
The plugin allows you to add a resource, such as a database to your Wildfly Application Server. In this example, we will review adding MySQL to a Wildfly Application Server. The first step is to add the mysql dependency to your POM file.
The next step is to add the plugin for MySQL to your POM file.
After updating your POM, you are ready to deploy the artifact. In order to deploy your artifact, make sure that you are in the same directory where your pom.xml is placed and issue the deploy command:
mvn wildfly:deploy-artifact
After a successful deploy, you can navigate to the administration panel for your Wildfly Application Server to ensure that the artifact was in fact deployed.
4.4 Stop the Application Server
The plugin allows you to stop your Wildfly Application Server. In order to stop the application server, make sure that you are in the same directory where your pom.xml is placed and issue the shutdown command:
mvn wildfly:shutdown
A success screen is displayed and your Wildfly Application Server is shut down.
5. Conclusion
In this article we reviewed the Wildfly Maven Plugin, developed by Red Hat. Instructions were provided on how to install and use the plugin to communicate with your JBoss Wildfly Application Server. We reviewed examples of deploying and undeploying an application, adding a resource, and stopping a JBoss Wildfly Application Server.
I deployed it successfully but I get 404 error. Someone please help me.
No