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/來進行配置

          主站蜘蛛池模板: 广丰县| 卫辉市| 长葛市| 吴堡县| 德昌县| 河源市| 满洲里市| 丘北县| 固始县| 于田县| 绥棱县| 贺州市| 郎溪县| 色达县| 泾川县| 扬州市| 聊城市| 中方县| 三亚市| 萨迦县| 湄潭县| 甘泉县| 习水县| 南溪县| 宜宾县| 延安市| 宁津县| 阿巴嘎旗| 新密市| 抚松县| 常熟市| 德令哈市| 秭归县| 抚顺市| 塘沽区| 宝清县| 教育| 浮梁县| 阳春市| 读书| 潼南县|