2008-11-13 88 views
16

我試圖設置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。但這些文件對於螞蟻來說是簡單的包裝。

回答

16

我正在使用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> 
9

如果你的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>