maven+svn+hudson+weblogic構建持續集成環境


持續集成環境就是我們開發的時候,有一套環境自動編譯、打包、測試、部署、發布的環境。

 

  1. 構建工具使用maven,在pom.xml中需要配置一個profile,內容如下:

    <profiles>

       <profile>

           <id>deploytoweblogic</id>

           <dependencies>

              <dependency>

                  <groupId>xml-apis</groupId>

                  <artifactId>xml-apis</artifactId>

                  <version>1.0.b2</version>

                  <scope>provided</scope>

              </dependency>

           </dependencies>         

           <build>

              <plugins>

                  <plugin>

                     <artifactId>maven-resources-plugin</artifactId>

                     <version>2.5</version>

                     <executions>

                         <execution>

                            <id>copy-resources</id>

                            <!-- here the phase you need -->

                            <phase>prepare-package</phase>

                            <goals>

                                <goal>copy-resources</goal>

                            </goals>

                            <configuration>

                                <outputDirectory>${basedir}/target/classes</outputDirectory>

                                <resources>

                                   <resource>

                                       <directory>src/main/resources/weblogic</directory>

                                       <filtering>true</filtering>

                                   </resource>

                                </resources>

                            </configuration>

                         </execution>

                     </executions>

                  </plugin>

                  <plugin>

                     <groupId>com.oracle.weblogic</groupId>

                     <artifactId>weblogic-maven-plugin</artifactId>

                     <version>10.3.4</version>

                     <configuration>

                         <adminurl>10.67.1.1:8080/webmis</adminurl>

                         <user>admin</user>

                         <password>admin123</password>

                         <upload>true</upload>

                         <action>redeploy</action>

                         <remote>false</remote>

                         <verbose>true</verbose>

                         <source>${project.build.directory}/${project.build.finalName}.${project.packaging}</source>

                         <name>ctrading2</name>

                         <delete_files>true</delete_files>

                     </configuration>

                     <executions>

                         <execution>

                            <id>DeployToRemoteContainer</id>

                            <phase>install</phase>

                            <goals>

                                <goal>redeploy</goal>

                             </goals>

                         </execution>

                     </executions>

                  </plugin>

              </plugins>

           </build>

       </profile>

    </profiles>

 

需要注意三個地方,
(1)紅色配置部分是增加一個依賴,防止與weblogic的jar沖突。如果沒有,會報異常java.lang.ClassCastException: weblogic.xml.jaxp.RegistryDocumentBuilderFactory cannot be cast to javax.xml.parsers.DocumentBuilderFactory

(2)灰色部分是hudson用來發送到weblogic需要執行的插件,執行階段是install。

(3)中間藍色部分是在安裝時覆蓋資源用的。因為開發環境和部署環境使用的數據源是不一樣的,所以在發布時需要使用非開發的數據源。部署環境數據源文件如下:

<?xml version="1.0" encoding="GBK"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://www.springframework.org/schema/beans

       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <!-- dataSource -->

    <!-- WebLogic JNDI -->

    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">

       <property name="jndiName" value="wls_ots_ds" />

    </bean>

    <!-- Query Data Source -->

    <!-- WebLogic JNDI -->

    <bean id="dataQuerySource" class="org.springframework.jndi.JndiObjectFactoryBean">

       <property name="jndiName" value="wls_ots_query_ds" />

    </bean>

</beans>

 

這樣客戶端maven的工作就完成了,開發時和平常沒有任何區別。

 

下面介紹hudson配置。

在hudson上添加項目就不說了,只說幾個在配置時需要注意的點:

  1. source code managemante節點選擇subversion,填寫項目的svn地址。
  2. build trigger時選擇第三項,在schedule中填入周期,如“0 2 * * *”表示每天2點執行構建。
  3. build節點的Goals and options填入clean install -DskipTests=true –Pdeploytoweblogic 表示使用maven進行構建,忽略測試,使用deploytoweblogic執行部署。
  4. 在build節點點擊advanced,在MAVEN_OPTS輸入-Xms512m -Xmx2048m -XX:MaxPermSize=512m。這是因為hudson使用maven構建會占用大量內存,可能會造成內存不足。

 

剩下的就是weblogic的配置了,那就很簡單了,指定數據源即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM