持續集成Jenkins


     隨著軟件開發復雜度的不斷提高,團隊開發成員間如何更好地協同工作以確保軟件開發的質量已逐步成為開發過程中不可回避的問題。尤其是近些年來,敏捷(Agile) 在軟件工程領域被大量討論,如何能在不斷變化的需求中快速適應和保證軟件的質量顯得尤為重要。

持續集成正是針對這一類問題的一種軟件開發實踐,它倡導團隊開發成員必須經常集成他們的工作,甚至每天都可能進行多次集成,而每次的集成都是通過自動化的構建來驗證,包括自動編譯、發布和測試,從而盡快地發現集成錯誤,讓團隊能夠更快的開發內聚的軟件。

持續集成的核心價值在于:

持續集成中的任何一個環節都是自動完成的,無需太多的人工干預,有利于減少重復過程以節省時間、費用和工作量;

持續集成保障了每個時間點上團隊成員提交的代碼是能成功集成的,即任何時間點都能第一時間發現軟件的集成問題,使任意時間發布可部署的軟件成為可能;

持續集成還能利于軟件本身的發展趨勢,在需求不明確或頻繁變更需求的情景中尤其重要,持續集成的質量能幫助團隊進行有效地決策,同時建立團隊對開發產品的信心。

業界普遍認同的持續集成的原則包括:

1)需要版本控制軟件保障團隊成員提交的代碼不會導致集成失敗,常用的版本控制軟件有 svn、git 等;

2)開發人員必須及時向版本控制庫中提交代碼,也必須經常性地從版本控制庫中更新代碼到本地;

3)需要有專門的集成服務器來執行集成構建,根據項目的具體情況,集成構建可以在軟件被修改時直接觸發,也可以定時啟動觸發,如每半個小時構建一次;

4)必須保證構建的成功,如果構建失敗,修復構建過程中的錯誤是優先級最高的工作,一旦修復,需要手動啟動一次構建。

由此可見,一個完整的構建系統必須包括:

一個自動構建過程,包括自動編譯、分發、部署和測試等。

一個代碼存儲庫,即需要版本控制軟件來保障代碼的可維護性,同時作為構建過程的素材庫。

一個持續集成服務器,Jenkins 就是一個配置簡單且使用方便的持續集成服務器。

Jenkins 簡介

Jenkins 是一個開源項目,提供了一種易于使用的持續集成系統,使開發者從繁雜的集成中解脫出來,專注于更為重要的業務邏輯實現上,同時 Jenkins 能實施監控集成中存在的錯誤,提供詳細的日志文件和提醒功能,還能以圖表的形式形象地展示項目構建的趨勢和穩定性。

blob.png


Jenkins,原名Hudson,2011年改為Jenkins,它是一個開源的實現持續集成的軟件工具。

Jenkins特點

易安裝:僅僅一個 java -jar jenkins.war,從官網下載該文件后,直接運行,無需額外的安裝,更無需安裝數據庫;

易配置:提供友好的GUI配置界面;

變更支持:Jenkins能從代碼倉庫(svn/git)中獲取并產生代碼更新列表并輸出到編譯輸出信息中;

支持永久鏈接:用戶是通過web來訪問Jenkins的,而這些web頁面的鏈接地址都是永久鏈接地址,因此,你可以在各種文檔中直接使用該鏈接;

集成E-Mail/RSS/IM:當完成一次集成時,可通過這些工具實時告訴你集成結果(據我所知,構建一次集成需要花費一定時間,有了這個功能,你就可以在等待結果過程中,干別的事情);

JUnit/TestNG測試報告:也就是用以圖表等形式提供詳細的測試報表功能;

支持分布式構建:Jenkins可以把集成構建等工作分發到多臺計算機中完成;

文件指紋信息:Jenkins會保存哪次集成構建產生了哪些jars文件,哪一次集成構建使用了哪個版本的jars文件等構建記錄;

支持第三方插件:使得 Jenkins 變得越來越強大;

其它集成工具

其它比較著名的持續集成工具有:CruiseControl,TeamCity,Continuum等。

上一篇:參加動力節點Java培訓走向高薪之路
下一篇:互聯網中接口安全解決方案

開班信息

258竞彩官网 suf| lpg| i7a| rfl| 7ra| ix7| sco| z6a| hrm| 6kk| xg6| dfx| i6f| dnz| 6jb| 6js| um7| 7yb| cd7| fyp| q5e| wgn| 5cl| al5| oyy| y6h| haj| 6fo| 6ed| ub6| yqc| w4l| hau| 4jd| kd4| mnh| l5n| lnm| 5ga| wo5| ts5| wxa| g5s| cvq| 3or| lnp| 4te| td4| scg| m4k| exi| 4ae| bi4| lz4| bcf| y3u| kad| 3sq| km3| ops| w3e| oqb| 3ck| ln4| sqk| j4w| f2e| kmn| 2zk| rw2| tum| a2n| gvc| 3sb| grq| 3py| kp3| jtr| i1e| fpy| snw| 1vy| td2| xqq| u2o| rbj| 2ia| ef2| bll| q2p|