shnulaa

          Never deter till tomorrow that which you can do today
          posts - 15, comments - 0, trackbacks - 0, articles - 2
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          關于持續集成的問題

          Posted on 2010-09-28 18:44 shnulaa 閱讀(277) 評論(0)  編輯  收藏 所屬分類: java

          什么是持續集成(Continuous Integration)

          持續集成(CI)是一種實踐,可以讓團隊在持續的基礎 上收到反饋并進行改進,不必等到開發周期后期才尋找和修復缺陷。通俗一點兒說,就是指對于開發人員的每一次代碼提交,都自動地把Repository中所有代碼Check out到一個空目錄,并且自動運行所有Test Case。如果成功則接受這次提交,否則告訴所有人,這是一個失敗的Revision。

          1. 使用工具CruiseControl
          下載地址 http://cruisecontrol.sourceforge.net/download.html 下載后解壓到目錄

          2. 使用svn下載項目到CruiseControl的projects目錄下(linux 使用svn命令checkout)

          3. 修改CruiseControl根目錄下的config.xml (CruiseControl+maven2+SVN)


           1<?xml version="1.0" encoding="UTF-8"?>
           2<cruisecontrol>
           3  <property name="cruisedir" value="/root/tools/cruisecontrol-bin-2.8.3" />
           4  <property name="logdir" value="${cruisedir}/logs" />
           5  <property name="checkoutdir" value="${cruisedir}/projects" />
           6  <property name="artifactdir" value="${cruisedir}/artifacts" />
           7  <!-- 這里的20100609MatchingManagerFromShanghai就是svn checkout的項目目錄名稱  -->
           8  <project name="20100609MatchingManagerFromShanghai">
           9    <bootstrappers>
          10      <svnbootstrapper localWorkingCopy="${checkoutdir}/${project.name}" />
          11    </bootstrappers>
          12    <modificationset quietperiod="30">
          13      <svn localWorkingCopy="${checkoutdir}/${project.name}" />
          14    </modificationset>
          15    <!-- 每隔300秒做一次maven 的 clean package ,這里的300秒可以任意改動-->
          16    <schedule interval="300">
          17      <!-- 使用maven來進行clean package, 需要指定maven目錄和setting目錄 -->
          18      <maven2 mvnScript="/root/tools/apache-maven-2.2.0/bin/mvn" pomFile="${checkoutdir}/${project.name}/pom.xml" goal="clean package" settingsFile="/root/tools/apache-maven-2.2.0/conf/settings.xml" />
          19    </schedule>
          20    <log>
          21      <merge dir="projects/${project.name}/target/test-results" />
          22    </log>
          23    <publishers>
          24       <!-- 可以配置郵件通知-->
          25      <email mailhost="smtp.cs-corpmail.cn" returnaddress="User@sh-db.com.cn" skipusers="false" reportsuccess="always" subjectprefix="[CruiseControl]" buildresultsurl="http://192.168.1.10:8080/cruisecontrol/buildresults/${project.name}" spamwhilebroken="true" username="User@sh-db.com.cn" password="User1234">
          26        <failure address="User@sh-db.com.cn" />
          27          <success address="User@sh-db.com.cn" />
          28      </email>
          29    </publishers>
          30    <listeners />
          31  </project>
          32</cruisecontrol>
          33

          4. 啟動CruiseControl根目錄下的cruisecontrol.bat(linux下為cruisecontrol.sh)

          5. 可以打開http://192.168.1.10:8080/cruisecontrol/來進行配置

          主站蜘蛛池模板: 安阳市| 望谟县| 庄浪县| 虹口区| 昂仁县| 都昌县| 类乌齐县| 天全县| 偏关县| 延津县| 威信县| 金塔县| 留坝县| 锦屏县| 黄龙县| 广平县| 阿瓦提县| 商都县| 阳原县| 五家渠市| 黎平县| 吉木萨尔县| 廉江市| 牡丹江市| 肇源县| 淳化县| 长沙县| 金湖县| 故城县| 南部县| 翼城县| 易门县| 承德市| 云安县| 任丘市| 黑山县| 百色市| 柯坪县| 文安县| 元氏县| 黄冈市|