Hi,
This is a series of four (4) articles that will describe how to use Maven and deploy a sample application to Weblogic.
Contents of each part:
There are no assumptions here and we are going to do everything from scratch.
There is always a person out there that will have to use those technologies together without knowing any of them.
So Far
Up to this point, we spent some time trying to get acquainted with various stuff.. We learned about Maven.. we learned about Weblogic, we learned a bit about Netbeans and we have created two maven projects.
Aaand.. at this final part of this series.. we are going to deploy our maven applications to our weblogic server.
Everything is setup and all we have to do is a few more steps.
Remember when we talked about Maven is using plugins?
Well, this is what we have to do, use a plugin that will help us deploy our maven application.
But which plugin?
Oracle provides a way in doing things
http://docs.oracle.com/cd/E24329_01/web.1211/e24368/maven.htm
So we understand that Weblogic 12c already provides the maven plugin for us.
All we have to do is to install that plugin to our repository.
Locate the plugin and the pom.xml
According to the documentation
(http://docs.oracle.com/cd/E24329_01/web.1211/e24368/maven.htm)
In our case (for this example):
C:\Oracle\Middleware\wls1211\wlserver_12.1\server\lib\wls-maven-plugin.jar
C:\Oracle\Middleware\wls1211\wlserver_12.1\server\lib\pom.xml
Now that we have located them. Lets install it.
Open a command prompt and navigate to C:\Oracle\Middleware\wls1211\wlserver_12.1\server\lib\ (or your middleware home\wlserver_12.1\server\lib)
Next, execute the following command
Normally you will see a BUILD SUCCESS at the end.
In case you dont remember what mvn install is and what it does, check out this link
http://maven.apache.org/plugins/maven-install-plugin/
According to the official documentation:
Next, you have to call the install-file goal in order to place the files in the proper place in the local repository (
as the documentation says here: http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html)
The above goal, will set up everything properly for us. So what we have done so far is:
We installed the project's main artifact, which is the wls-maven-plugin, and we then setup everything properly to our local repository.
How do we know that? How do we know that we have done everything ok?
First of all, we have just added a new plugin into our local repository. How do we call it?
Where is it installed?
It is easy to find, if you paid attention to the install:install-file
ok so we know where is the plugin, under com.oracle.weblogic. But how do we call the plugin's goals?
with the following command:
Now, that is a bit long, isnt it? It would be great if we could do something like the following:
mvn wls:help ? right? It certainly looks better and easier to remember.
In order to do that we have to do two things:
1) Assign a prefix to our plugin. But wait! this is already done by Oracle. As you remember there is a pom.xml in the lib folder
So this means that we can skip the wls-maven-plugin part and type simply wls.
More on the plugin prefixes:
http://maven.apache.org/guides/introduction/introduction-to-plugin-prefix-mapping.html
2) Map the prefix to a pluginGroup for wls. In order to have it working, we have to map the new prefix to a pluginGroup. In our case, it is com.oracle.weblogic. We create the pluginGroup in the settings.xml of our m2 folder. In my case, it is
C:\Users\Dimitrios\.m2\settings.xml
As you can see, we have now added a pluginGroup that will help us work with our prefix.
Lets try now the following:
How to Use it.
We have done the learning..
We have done the setup
We have done the configuration
Let us now make it all work together!
First things first. We have to include our new plugin (wls) in our maven application.
In order to do that, we have to edit the pom.xml file in each of our applications.
In both cases we have to add the following:
CmdMvnApp pom.xml (no IDE app):
Then go to cmd line and navigate to the location of the pom.xml of the project and type
NetbeansMvnApp pom.xml (Netbeans app):
Build the Project:
Next step is to deploy! right?
wrong.. Why? simply because, we have to answer some logical questions..
-Where are we going to deploy the application?
hmm... you didnt see that coming right?
Wait wait wait... according to the official documentation:
http://docs.oracle.com/cd/E24329_01/web.1211/e24368/maven.htm#autoId2
-=Why do you keep saying wrong all the time!!!!
ok. just try it then.
I will!
Hmmm.. something went wrong...
No kidding..
A few questions first..
Why did we use the wls:deploy ?
Founded it here:
http://docs.oracle.com/cd/E24329_01/web.1211/e24368/maven.htm#autoId3
Oh ok.
So based on that, lets start the server then..
Ofcourse it is the same error!!
Read carefully:
Is there any chance (in this series of articles) to have your Middlware home inside the Maven project?
Right. So. we have to set the proper middlware home value and probably more values prior to deploying.
Lets focus on starting the Weblogic Server 12c with Maven.
For the sace of this example, we are going to use some parameters of the start-server goal as described in the official documentation.
http://docs.oracle.com/cd/E24329_01/web.1211/e24368/maven.htm#autoId12
Ok, so we see in the above link that we have to configure several parameters prior to starting the weblogic server. In order to do that, we have to configure our Maven weblogic plugin with the appropriate values.
Configuring the Maven plugin is fairly easy. Here is a refresher
http://maven.apache.org/guides/mini/guide-configuring-plugins.html#Configuring_Parameters
So in this example, the following configuration will be enough to start the server:
Now, go ahead and type mvn wls:start-server (remember that you are executing a command from within the Maven project folder where the pom.xml resides.)
After a few seconds you will the following message:
Server started successful
Now, go and test your console. Go to a browser and type localhost:7001/console (or whatever your ip and port)
Tadaaaa!!
Nice isnt it??
Hang on!
What?
What if I do it again?
What do you mean?
What if I type the same command again! Will I crash it???
Nope:
See?? All good. I am sure you can change the maven plugin configuration in order to be able to stop the weblogic server.
Gonfiguration for deployment.
We will update the current configuration in order to be able to deploy our application onto Weblogic (expecially now that we have it up and running!!). Hopefully by now, you will not need to read further and you will be able to make the adjustments on your own.
However, here is the configuration.
On the Command Line type mvn wls:deploy
and thats it!
So here we are! we managed to deploy our application from the command line using Maven!!!
Now, in order to finalize this series, we are going to do the same with Netbeans.
First we update the pom.xml of the NetbeansMvnApp as the previous one (CmdMvnApp)
Next, we have to create a goal in NetBeans for this project:
And thas it!
This will deploy the application onto Weblogic!
It wasnt that hard! was it??
Of course there are many other goals to configure such as re-deploy, stop-server etc. But I am pretty sure that it will be straightforward from now on!
Still confused?
Start Over!
Regards.
This is a series of four (4) articles that will describe how to use Maven and deploy a sample application to Weblogic.
Contents of each part:
- Part 1: Maven. Provide the general idea of Maven and install it on Windows.
- Part 2: Weblogic. Provide the general idea of Weblogic and install it on Windows.
- Part 3: Sample Maven Applications. We will create three sample maven applications. One with Netbeans and one without any IDE.
- Part 4: Configuration and Deployment. We will configure everything and we will deploy the applications to Weblogic.
There are no assumptions here and we are going to do everything from scratch.
There is always a person out there that will have to use those technologies together without knowing any of them.
So Far
Up to this point, we spent some time trying to get acquainted with various stuff.. We learned about Maven.. we learned about Weblogic, we learned a bit about Netbeans and we have created two maven projects.
Aaand.. at this final part of this series.. we are going to deploy our maven applications to our weblogic server.
Everything is setup and all we have to do is a few more steps.
Remember when we talked about Maven is using plugins?
Well, this is what we have to do, use a plugin that will help us deploy our maven application.
But which plugin?
Oracle provides a way in doing things
http://docs.oracle.com/cd/E24329_01/web.1211/e24368/maven.htm
....
-
wls-maven-plugin
—Delivered in WebLogic Server 12c, provides enhanced functionality to install, start and stop servers, create domains, execute WLST scripts, and compile and deploy applications. In addition to its shortened, easier to specify name, the extended functionality in thewls-maven-plugin
requires a local WebLogic Server installation, in contrast to theweblogic-maven-plugin
, which is generated as a standalone, self-contained JAR file. However, with thewls-maven-plugin
, you can install WebLogic Server from within your Maven environment to fulfill the local WebLogic Server requirement. For more information about this plug-in, see Configuring the WebLogic Development Maven Plug-In..
So we understand that Weblogic 12c already provides the maven plugin for us.
All we have to do is to install that plugin to our repository.
Locate the plugin and the pom.xml
According to the documentation
(http://docs.oracle.com/cd/E24329_01/web.1211/e24368/maven.htm)
Thewls-maven-plugin
is located in theMW_HOME
/wlserver_12.1/server/lib
directory, whereMW_HOME
represents the top-level installation directory for all Fusion Middleware products installed on one machine; for example,c:\Oracle\Middleware
. The plug-in is provided as a pre-built JAR file and accompanyingpom.xml
file:
MW_HOME
/wlserver_12.1/server/lib/wls-maven-plugin.jar
MW_HOME
/wlserver_12.1/server/lib/pom.xml
In our case (for this example):
C:\Oracle\Middleware\wls1211\wlserver_12.1\server\lib\wls-maven-plugin.jar
C:\Oracle\Middleware\wls1211\wlserver_12.1\server\lib\pom.xml
Now that we have located them. Lets install it.
Open a command prompt and navigate to C:\Oracle\Middleware\wls1211\wlserver_12.1\server\lib\ (or your middleware home\wlserver_12.1\server\lib)
Next, execute the following command
mvn install -Dfile=wls-maven-plugin.jar -DpomFile=pom.xml
Normally you will see a BUILD SUCCESS at the end.
In case you dont remember what mvn install is and what it does, check out this link
http://maven.apache.org/plugins/maven-install-plugin/
According to the official documentation:
is used to automatically install the project's main artifact (the JAR, WAR or EAR), its POM and any attached artifacts (sources, javadoc, etc) produced by a particular project.
Next, you have to call the install-file goal in order to place the files in the proper place in the local repository (
as the documentation says here: http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html)
Normally you will see a BUILD SUCCESS at the end.mvn install:install-file -Dfile=wls-maven-plugin.jar -DpomFile=pom.xml
The above goal, will set up everything properly for us. So what we have done so far is:
We installed the project's main artifact, which is the wls-maven-plugin, and we then setup everything properly to our local repository.
How do we know that? How do we know that we have done everything ok?
First of all, we have just added a new plugin into our local repository. How do we call it?
Where is it installed?
It is easy to find, if you paid attention to the install:install-file
ok so we know where is the plugin, under com.oracle.weblogic. But how do we call the plugin's goals?
with the following command:
mvn com.oracle.weblogic:wls-maven-plugin:help
Now, that is a bit long, isnt it? It would be great if we could do something like the following:
mvn wls:help ? right? It certainly looks better and easier to remember.
In order to do that we have to do two things:
1) Assign a prefix to our plugin. But wait! this is already done by Oracle. As you remember there is a pom.xml in the lib folder
So this means that we can skip the wls-maven-plugin part and type simply wls.
More on the plugin prefixes:
http://maven.apache.org/guides/introduction/introduction-to-plugin-prefix-mapping.html
2) Map the prefix to a pluginGroup for wls. In order to have it working, we have to map the new prefix to a pluginGroup. In our case, it is com.oracle.weblogic. We create the pluginGroup in the settings.xml of our m2 folder. In my case, it is
C:\Users\Dimitrios\.m2\settings.xml
As you can see, we have now added a pluginGroup that will help us work with our prefix.
Lets try now the following:
mvn wls:helpNice isnt it?? If everything went well, it will print you the list of goals of this plugin followed by a BUILD SUCCESS.
How to Use it.
We have done the learning..
We have done the setup
We have done the configuration
Let us now make it all work together!
First things first. We have to include our new plugin (wls) in our maven application.
In order to do that, we have to edit the pom.xml file in each of our applications.
In both cases we have to add the following:
com.oracle.weblogic
wls-maven-plugin
12.1.1.0
CmdMvnApp pom.xml (no IDE app):
Then go to cmd line and navigate to the location of the pom.xml of the project and type
mvn package
NetbeansMvnApp pom.xml (Netbeans app):
Build the Project:
Next step is to deploy! right?
wrong.. Why? simply because, we have to answer some logical questions..
-Where are we going to deploy the application?
hmm... you didnt see that coming right?
Wait wait wait... according to the official documentation:
http://docs.oracle.com/cd/E24329_01/web.1211/e24368/maven.htm#autoId2
The wls-maven-plugin
follows the Maven theme and uses a
convention-over-configuration approach. Thus, for a set of commonly used
configuration elements, the plug-in supplies an appropriate, consistent
set of default values that you can use across all of the goals. This
reduces the degree of configuration required for you to use the plug-in
and helps you to achieve uniform goal executions, even in different
environments. The common configuration elements and their default values
are:
middlewareHome
:${basedir}/Oracle/Software
, where${basedir}
is the standard Maven project property which represents the directory containing the current Maven project.weblogicHome
:wlserver
orwlserver_12.1
depending on the install type.domainHome
:${basedir}/Oracle/Domains
source
:${project.build.directory}/${project.artifactId}.${project.packaging}
adminurl
:t3://localhost:7001
-=Why do you keep saying wrong all the time!!!!
ok. just try it then.
I will!
mvn wls:deploy
Hmmm.. something went wrong...
No kidding..
A few questions first..
Why did we use the wls:deploy ?
Founded it here:
http://docs.oracle.com/cd/E24329_01/web.1211/e24368/maven.htm#autoId3
Deploys WebLogic Server applications and modules. Supports all deployment formats; for example, WAR, JAR, and such
Oh ok.
So based on that, lets start the server then..
mvn wls:start-serverhmmmm... still the same error..
Ofcourse it is the same error!!
Read carefully:
middlewareHome
: ${basedir}/Oracle/Software
, where ${basedir}
is the standard Maven project property which represents the directory containing the current Maven project.Is there any chance (in this series of articles) to have your Middlware home inside the Maven project?
Right. So. we have to set the proper middlware home value and probably more values prior to deploying.
Lets focus on starting the Weblogic Server 12c with Maven.
For the sace of this example, we are going to use some parameters of the start-server goal as described in the official documentation.
http://docs.oracle.com/cd/E24329_01/web.1211/e24368/maven.htm#autoId12
Ok, so we see in the above link that we have to configure several parameters prior to starting the weblogic server. In order to do that, we have to configure our Maven weblogic plugin with the appropriate values.
Configuring the Maven plugin is fairly easy. Here is a refresher
http://maven.apache.org/guides/mini/guide-configuring-plugins.html#Configuring_Parameters
So in this example, the following configuration will be enough to start the server:
Now, go ahead and type mvn wls:start-server (remember that you are executing a command from within the Maven project folder where the pom.xml resides.)
After a few seconds you will the following message:
Server started successful
Now, go and test your console. Go to a browser and type localhost:7001/console (or whatever your ip and port)
Tadaaaa!!
Nice isnt it??
Hang on!
What?
What if I do it again?
What do you mean?
What if I type the same command again! Will I crash it???
Nope:
See?? All good. I am sure you can change the maven plugin configuration in order to be able to stop the weblogic server.
Gonfiguration for deployment.
We will update the current configuration in order to be able to deploy our application onto Weblogic (expecially now that we have it up and running!!). Hopefully by now, you will not need to read further and you will be able to make the adjustments on your own.
However, here is the configuration.
On the Command Line type mvn wls:deploy
and thats it!
So here we are! we managed to deploy our application from the command line using Maven!!!
Now, in order to finalize this series, we are going to do the same with Netbeans.
First we update the pom.xml of the NetbeansMvnApp as the previous one (CmdMvnApp)
Next, we have to create a goal in NetBeans for this project:
And thas it!
This will deploy the application onto Weblogic!
It wasnt that hard! was it??
Of course there are many other goals to configure such as re-deploy, stop-server etc. But I am pretty sure that it will be straightforward from now on!
Still confused?
Start Over!
Regards.
Excellent post and easy to follow instructions. Thanks for your help.
ReplyDelete