Jenkins 入门系列--jenkins 介绍
Jenkins?是一個可擴(kuò)展的持續(xù)集成引擎。
主要用于:
- l?持續(xù)、自動地構(gòu)建/測試軟件項目。
- l?監(jiān)控一些定時執(zhí)行的任務(wù)。
Jenkins擁有的特性包括:
- l?易于安裝-只要把jenkins.war部署到servlet容器,不需要數(shù)據(jù)庫支持。
- l?易于配置-所有配置都是通過其提供的web界面實現(xiàn)。
- l?集成RSS/E-mail通過RSS發(fā)布構(gòu)建結(jié)果或當(dāng)構(gòu)建完成時通過e-mail通知。
- l?生成JUnit/TestNG測試報告。
- l?分布式構(gòu)建支持Jenkins能夠讓多臺計算機(jī)一起構(gòu)建/測試。
- l?文件識別:Jenkins能夠跟蹤哪次構(gòu)建生成哪些jar,哪次構(gòu)建使用哪個版本的jar等。
- l?插件支持:支持?jǐn)U展插件,你可以開發(fā)適合自己團(tuán)隊使用的工具。
1?Jenkins的由來
目前持續(xù)集成(CI)已成為當(dāng)前許多軟件開發(fā)團(tuán)隊在整個軟件開發(fā)生命周期內(nèi)側(cè)重于保證代碼質(zhì)量的常見做法。它是一種實踐,旨在緩和和穩(wěn)固軟件的構(gòu)建過程。并且能夠幫助您的開發(fā)團(tuán)隊?wèi)?yīng)對如下挑戰(zhàn):
- l?軟件構(gòu)建自動化?:配置完成后,CI系統(tǒng)會依照預(yù)先制定的時間表,或者針對某一特定事件,對目標(biāo)軟件進(jìn)行構(gòu)建。
- l?構(gòu)建可持續(xù)的自動化檢查?:CI系統(tǒng)能持續(xù)地獲取新增或修改后簽入的源代碼,也就是說,當(dāng)軟件開發(fā)團(tuán)隊需要周期性的檢查新增或修改后的代碼時,CI系統(tǒng)會不斷確認(rèn)這些新代碼是否破壞了原有軟件的成功構(gòu)建。這減少了開發(fā)者們在檢查彼此相互依存的代碼中變化情況需要花費的時間和精力(說直接一點也是錢啊,呵呵)。
- l?構(gòu)建可持續(xù)的自動化測試?:構(gòu)建檢查的擴(kuò)展部分,構(gòu)建后執(zhí)行預(yù)先制定的一套測試規(guī)則,完成后觸發(fā)通知(Email,RSS等等)給相關(guān)的當(dāng)事人。
- l?生成后后續(xù)過程的自動化?:當(dāng)自動化檢查和測試成功完成,軟件構(gòu)建的周期中可能也需要一些額外的任務(wù),諸如生成文檔、打包軟件、部署構(gòu)件到一個運行環(huán)境或者軟件倉庫。這樣,構(gòu)件才能更迅速地提供給用戶使用。
部署一個CI系統(tǒng)需要的最低要求是,一個可獲取的源代碼的倉庫,一個包含構(gòu)建腳本的項目。
下圖概括了CI系統(tǒng)的基本結(jié)構(gòu):
?
該系統(tǒng)的各個組成部分是按如下順序來發(fā)揮作用的:
1.?開發(fā)者檢入代碼到源代碼倉庫。
2.?CI系統(tǒng)會為每一個項目創(chuàng)建了一個單獨的工作區(qū)。當(dāng)預(yù)設(shè)或請求一次新的構(gòu)建時,它將把源代碼倉庫的源碼存放到對應(yīng)的工作區(qū)。
3.?CI系統(tǒng)會在對應(yīng)的工作區(qū)內(nèi)執(zhí)行構(gòu)建過程。
4.?(配置如果存在)構(gòu)建完成后,CI系統(tǒng)會在一個新的構(gòu)件中執(zhí)行定義的一套測試。完成后觸發(fā)通知(Email,RSS等等)給相關(guān)的當(dāng)事人。
5.?(配置如果存在)如果構(gòu)建成功,這個構(gòu)件會被打包并轉(zhuǎn)移到一個部署目標(biāo)(如應(yīng)用服務(wù)器)或存儲為軟件倉庫中的一個新版本。軟件倉庫可以是CI系統(tǒng)的一部分,也可以是一個外部的倉庫,諸如一個文件服務(wù)器或者像Java.net、?SourceForge之類的網(wǎng)站。
6.?CI系統(tǒng)通常會根據(jù)請求發(fā)起相應(yīng)的操作,諸如即時構(gòu)建、生成報告,或者檢索一些構(gòu)建好的構(gòu)件。
Jenkins就是這么一個CI系統(tǒng)。之前叫做Hudson。
以下是使用Jenkins的一些理由:
- l?是所有CI產(chǎn)品中在安裝和配置上最簡單的。
- l?基于Web訪問,用戶界面非常友好、直觀和靈活,在許多情況下,還提供了AJAX的即時反饋。
- l?Jenkins是基于Java開發(fā)的(如果你是一個Java開發(fā)人員,這是非常有用的),但它不僅限于構(gòu)建基于Java的軟件。
- l?Jenkins擁有大量的插件。這些插件極大的擴(kuò)展了Jenkins的功能;它們都是開源的,而且它們可以直接通過web界面來進(jìn)行安裝與管理。
1.1?Jenkins的目標(biāo)
Jenkins的主要目標(biāo)是監(jiān)控軟件開發(fā)流程,快速顯示問題。所以能保證開發(fā)人員以及相關(guān)人員省時省力提高開發(fā)效率。
CI系統(tǒng)在整個開發(fā)過程中的主要作用是控制:當(dāng)系統(tǒng)在代碼存儲庫中探測到修改時,它將運行構(gòu)建的任務(wù)委托給構(gòu)建過程本身。如果構(gòu)建失敗了,那么CI系統(tǒng)將通知相關(guān)人員,然后繼續(xù)監(jiān)視存儲庫。它的角色看起來是被動的;但它確能快速反映問題。
特別是它具有以下優(yōu)點:
- l?Jenkins一切配置都可以在web界面上完成。有些配置如MAVEN_HOME和Email,只需要配置一次,所有的項目就都能用。當(dāng)然也可以通過修改XML進(jìn)行配置。
- l?支持Maven的模塊(Module),Jenkins對Maven做了優(yōu)化,因此它能自動識別Module,每個Module可以配置成一個job。相當(dāng)靈活。
- l?測試報告聚合,所有模塊的測試報告都被聚合在一起,結(jié)果一目了然,使用其他CI,這幾乎是件不可能完成的任務(wù)。
- l?構(gòu)件指紋(artifact?fingerprint),每次build的結(jié)果構(gòu)件都被很好的自動管理,無需任何配置就可以方便的瀏覽下載。
轉(zhuǎn):http://www.cnblogs.com/zz0412/tag/jenkins/
轉(zhuǎn)載于:https://www.cnblogs.com/lameclimber/p/10842002.html
總結(jié)
以上是生活随笔為你收集整理的Jenkins 入门系列--jenkins 介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入探讨JS中的数组排序函数sort()
- 下一篇: 20162303《程序设计与数据结构》第