使用Maven作为Weblogic 10.3的构建工具

问题描述:

我试图设置Weblogic Server 10.3(和Portal等)以使用maven作为构建工具。我试图找到一个体面的教程或文件如何做到这一点。有一些像9.0旧版本的教程,但有一点版本10的信息。使用Maven作为Weblogic 10.3的构建工具

我正在寻找一种方式来构建与maven的weblogic的ear文件。人们是否真的这样做?使用maven值得麻烦吗?

我想使用maven为了更容易地与像Hudson这样的持续集成工具集成。

编辑:似乎有一种方式直接导出maven文件http://edocs.bea.com/wlw/docs102/guide/ideuserguide/build/conMavenScript.html。但这些文件对于蚂蚁来说是简单的包装。

我正在使用maven构建一个部署WebLogic Server 10.3的EAR。棘手的部分是:

  • 查找WebLogic的Maven的插件
  • 把所有的依赖在Maven回购的所有相关性(我真的建议Sonatype Nexus
  • 设置noExit为true(否则你将得到问题!哈德森)

我用下面的目录结构EAR项目:

pom.xml 
src/ 
    main/ 
     app/ 
      META-INF/ 
        weblogic-application.xml 

以下是从我的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> 

如果你的Weblogic 10.3坐落在当地中,尝试使用Cargo - 这是设置更容易。以下是我不得不添加到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/是以前用来部署耳朵项目到WebLogic插件,但它似乎有些单调乏味。 Oracle已经发布了用于weblogic的后继插件。 这个插件是比较容易使用和配置http://download.oracle.com/docs/cd/E17904_01/web.1111/e13702/maven_deployer.htm

+0

虽然,只适用于Oracle 10G以上版本 – shark8me 2012-02-10 10:23:19

你也可以使用Maven ANTRUN插件作为我说明这个博客:

http://loutilities.wordpress.com/2012/06/20/use-your-maven-build-to-auto-deploy-to-weblogic-10-3/