I am trying to setup Weblogic Server 10.3 (and Portal etc.) to use maven as a build tool. I am trying to find a decent tutorial or documentation how to do this. There are some tutorials for older versions like 9.0, but there is little info for version 10.
I am looking a way to build weblogic's ear file with maven. Are people actually doing this? Is using maven worth the trouble?
I would like to use maven in order to have easier integration with continuous integration tools like Hudson.
edit: There seems to be a way to export maven files directly http://edocs.bea.com/wlw/docs102/guide/ideuserguide/build/conMavenScript.html. But those files are simple wrappers for ant.
I am using maven to build an EAR which I deploy an WebLogic Server 10.3. The tricky parts were:
I use the following directory structure in the EAR project:
pom.xml
src/
main/
app/
META-INF/
weblogic-application.xml
The following is taken from my pom.xml:
<build>
<plugins>
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<configuration>
<displayName>My Project</displayName>
<earSourceDirectory>src/main/app</earSourceDirectory>
<modules>
<webModule>
<groupId>com.somecompany</groupId>
<artifactId>webapp</artifactId>
</webModule>
</modules>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>weblogic-maven-plugin</artifactId>
<version>2.9.1</version>
<executions>
<execution>
<phase>deploy</phase>
<goals>
<goal>deploy</goal>
<goal>start</goal>
</goals>
</execution>
</executions>
<configuration>
<name>my-project</name>
<adminServerHostName>${wls.adminServerHostName}</adminServerHostName>
<adminServerPort>${wls.adminServerPort}</adminServerPort>
<adminServerProtocol>t3</adminServerProtocol>
<userId>${wls.userId}</userId>
<password>${wls.password}</password>
<upload>true</upload>
<remote>true</remote>
<verbose>false</verbose>
<debug>false</debug>
<targetNames>AdminServer</targetNames>
<noExit>true</noExit>
</configuration>
<dependencies>
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.5</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>weblogic</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>webservices</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.utils.full</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.i18n</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.weblogic.rmi.client</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>javax.enterprise.deploy</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>webserviceclient</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.weblogic.security.wls</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.weblogic.security.identity</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.weblogic.security</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>wlclient</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.transaction</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.utils.classloaders</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>wljmsclient</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.management.core</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>wls-api</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.descriptor</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.logging</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.weblogic.socket.api</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.weblogic.security.digest</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.weblogic.workmanager</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.weblogic.lifecycle</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.utils.wrapper</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>wlsafclient</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.management.jmx</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>weblogic</groupId>
<artifactId>com.bea.core.descriptor.wl</artifactId>
<version>${weblogic.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
If your Weblogic 10.3 sits on local box, try using Cargo -- It's much easier to setup. Here is what I had to add to pom.xml
:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<configuration>
<container>
<containerId>weblogic103x</containerId>
<home>/path/to/your/wlserver_10.3</home>
</container>
</configuration>
</plugin>
http://mojo.codehaus.org/weblogic-maven-plugin/ is the plugin previously used to deploy ear projects to weblogic But it seems tedious. Oracle has released its successor plugin for weblogic. This Plugin is comparatively easier to use and configure http://download.oracle.com/docs/cd/E17904_01/web.1111/e13702/maven_deployer.htm
You can also use the Maven ANTRUN plugin as I illustrate in this blog:
http://loutilities.wordpress.com/2012/06/20/use-your-maven-build-to-auto-deploy-to-weblogic-10-3/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With