簡單介紹Jenkins&持續集成


1.定義

持續集成(Continuous integration),簡稱CI。

隨着軟件項目復雜度的增加,就會對集成和確保軟件組件能夠在一起工作提出了更多的要求-要早集成、常集成。

CI不是一項軟件開發實踐,而是多項軟件開發實踐的集合。

 

2.持續繼承與敏捷編程

在敏捷領域中,測試驅動TDD和持續集成CI被稱為敏捷編程XP的兩大基石,於是乎,很多人的概念里就是持續集成是為了實現敏捷編程的。

這是一個錯誤的認識。實際上,早於敏捷編程概念的提出,持續集成作為一個best practice就已經被很多公司采用了,只不過作為一個概念,

則是由Martin大叔為了推進敏捷所倡導並由此風靡起來。持續集成本身只是一種practice,並不被什么開發模型所限制,在任何一種開發模型中都可以采用,也可以運行得非常理想。

 

3.為什么要做持續集成

易於定位錯誤。也就是當你的持續集成失敗了,說明你新加的代碼或者修改的代碼引起了錯誤。

及早在項目里取得系統級的成果。因為代碼已經被集成起來了,所以即使整個系統還不是那么可用,但至少你和你的團隊都已經可以看到它已經在那了。

改善對進度的控制。這點非常明顯,每天都可以看到哪些功能可以使用,哪些功能還沒有實現。。

改善客戶關系。理由同上。

更加充分地測試系統中的各個單元。這也是我們常講的Daily Build與Smoke Test相結合帶來的絕大好處。

能在更短的時間里建造整個系統。

有助於項目的開發數據的收集。比如說,項目代碼量的變化,經常出錯的Tests,經常出錯的source code等。

與其它工具結合的持續代碼質量改進。如與CheckStyle,FindBugs等等的結合。

與測試工具或者框架結合的持續測試。如與xUnit,SilkTest, LoadRunner等等的結合。

便於Code Review。在每個build里,我們都可以知道與前一個build之間有什么改動,然后針對這些改動,我們就可以實施Code Review了。

便於開發流程的管理。要把一個開發的build提交給測試組作測試,測完滿意了,再提交到發布組去發布。

 

4.持續集成的架構圖

 

5.Jenkins

Jenkins是基於Java開發的一種 持續集成工具,用於監控持續重復的工作,功能包括:
1、持續的軟件版本發布/測試項目。
2、監控外部調用執行的工作。
 
6.Jenkins安裝

前置條件:
jdk         注意需要Java 5以及以上的版本
tomcat
Maven
配置環境變量,修改端口等。
Jenkins安裝:
下載war
部署到tomcat中
啟動tomcat
訪問:http://192.168.18.63:8080/jenkins,按步驟填寫完成部署。

6.使用
  1. 項目名稱
  2. 自定義工作目錄
  3. 配置svn地址,用戶名,密碼
  4. Build periodically 0 1 * * *
  5. Poll SCM */5 * * * *
  6. Invoke top-level Maven targets mvn package
  7. Execute shell
  8. 構建后操作:FindBugs,Junit Test,Email等

自動部署執行的shell腳本:

  1. BUILD_ID=dontkillme 防止job完成后tomcat啟動終端,原因未知。
  2. sh /opt/tomcat/bin/shutdown.sh
  3. sleep 5
  4. rm -rf /opt/tomcat/webapps/cmcciw /opt/tomcat/webapps/cmcciw.war
  5. cp target/cmcciw.war /opt/tomcat/webapps/
  6. sleep 10
  7. sh /opt/tomcat/bin/startup.sh
 

 


免責聲明!

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



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