【jenkins】概論
接下來的幾篇博文小編將和大家一起探討學習jenkins的基礎知識以及相關應用,本篇博文,我們將一起走進jenkins。
是什麼?
Jenkins是一個開源軟體專案,是基於Java開發的一種持續整合(Continuous Integration,簡稱CI)工具,用於監控持續重複的工作,旨在提供一個開放易用的軟體平臺,使軟體的持續整合變成可能。也就是我們可以讓jenkins幫助我們自動編譯、分發、部署和測試等,我們需要完成的工作就是完成基本的環境配置、構建配置等。
jenkins特點:
1. 易使用,使用者介面簡單,直觀,增加了視覺上的吸引力,易開始操作使用。
2. 擴充套件性好,能夠靈活和方便的迎合使用者的想法。每週都會有很多新的外掛可供使用,範圍涉及到版本控制、構建工具、程式碼質量度量、構建通知、外部系統整合、使用者介面定製化等。
3.其開源社群的規模大,活躍度高。
用在哪?
1. 開發
(1)持續整合:
- 任何一個環節都是自動完成的,無需太多的人工干預,有利於減少重複過程以節省時間、費用和工作量
- 保障了每個時間點上團隊成員提交的程式碼是能成功整合的。換言之,任何時間點都能第一時間發現軟體的整合問題,使任意時間釋出可部署的軟體成為了可能
- 頻繁的將程式碼整合到主幹(優點:及時發現錯誤,防止分支大幅度偏離主幹)
<總之,CI是一個能監控版本控制系統變化的工具,無論任何時候,只要監測到有變化,就會自動編譯和測試應用程式。如果出現問題,會馬上通知開發人員。>
(2)每日構建:強調完全自動化的、可重複的建立過程,其中包括每天執行多次的自動化測試。
2. 測試——自動化/持續部署
怎麼實現?
CI系統的基本結構:
圖解:
1.開發者檢入程式碼到原始碼倉庫。
2.CI系統會為每一個專案建立了一個單獨的工作區。當預設或請求一次新的構建時,它將把原始碼倉庫的原始碼存放到對應的工作區。
3.CI系統會在對應的工作區內執行構建過程。
4.(配置如果存在)構建完成後,CI系統會在一個新的構件中執行定義的一套測試。完成後觸發通知(Email,RSS等等)給相關的當事人。
5.(配置如果存在)如果構建成功,這個構件會被打包並轉移到一個部署目標(如應用伺服器)或儲存為軟體倉庫中的一個新版本。軟體倉庫可以是CI系統的一部分,也可以是一個外部的倉庫,諸如一個檔案伺服器或者像Java.net、 SourceForge之類的網站。
6.CI系統通常會根據請求發起相應的操作,諸如即時構建、生成報告,或者檢索一些構建好的構件。
構建系統的組成:自動構建過程+程式碼儲存庫(版本控制軟體)+持續整合伺服器
Hudson VS Jenkins
1.歷史
時間(年) | 大事件 |
---|---|
2004 | Hudson由Sun公司啟動 |
2005 | 第一個版本在java.net釋出 |
2007 | Hudson逐漸取代CruiseControl和其他的開源構建工具的地位 |
2008 | javaOne大會上,Hudson獲得Duke's Choice Award |
2010 | Oracle對Sun的收購帶來了Hudson的所有權問題 |
2011 | 將專案名稱從“Hudson”改為“Jenkins”;甲骨文繼續開發Hudson,Jenkins和Hudson成為兩個獨立的專案 |
2013 | GitHub上的Jenkins擁有567個專案成員和約1,100個公共倉庫;Hudson有32個專案成員和17個公共倉庫 |
2. 關係:Hudson是Jenkins的前身(開發團隊和專案管理不變)
3. 比較?
(1)Hudson的絕大部分開發者轉向Jenkins開發,包括創始人Kohsuke Kawaguchi,因此Jenkins的技術優勢更為明顯
(2)Jenkins支援超過1000個外掛,多樣而強大的外掛讓Jenkins更加強大
(3)Jenkins開發社群的管理十分開放,有利於Jenkins的可持續發展
小結
學無止境~~~
下篇博文,小編將會介紹【jenkins】安裝與配置,感謝您的閱讀。