文章轉載:http://www.cnblogs.com/zz0412/tag/jenkins/default.html?page=1html
Jenkins 是一個可擴展的持續集成引擎。web
主要用於:數據庫
Jenkins擁有的特性包括:tomcat
目前持續集成(CI)已成爲當前許多軟件開發團隊在整個軟件開發生命週期內側重於保證代碼質量的常見作法。它是一種實踐,旨在緩和和穩固軟件的構建過程。而且可以幫助您的開發團隊應對以下挑戰:服務器
部署一個CI系統須要的最低要求是,一個可獲取的源代碼的倉庫,一個包含構建腳本的項目。分佈式
下圖歸納了CI系統的基本結構:工具
該系統的各個組成部分是按以下順序來發揮做用的:測試
1. 開發者檢入代碼到源代碼倉庫。優化
2. CI系統會爲每個項目建立了一個單獨的工做區。當預設或請求一次新的構建時,它將把源代碼倉庫的源碼存放到對應的工做區。網站
3. CI系統會在對應的工做區內執行構建過程。
4. (配置若是存在)構建完成後,CI系統會在一個新的構件中執行定義的一套測試。完成後觸發通知(Email,RSS等等)給相關的當事人。
5. (配置若是存在)若是構建成功,這個構件會被打包並轉移到一個部署目標(如應用服務器)或存儲爲軟件倉庫中的一個新版本。軟件倉庫能夠是CI系統的一部分,也能夠是一個外部的倉庫,諸如一個文件服務器或者像Java.net、 SourceForge之類的網站。
6. CI系統一般會根據請求發起相應的操做,諸如即時構建、生成報告,或者檢索一些構建好的構件。
Jenkins就是這麼一個CI系統。以前叫作Hudson。
如下是使用Jenkins的一些理由:
Jenkins的主要目標是監控軟件開發流程,快速顯示問題。因此能保證開發人員以及相關人員省時省力提升開發效率。
CI系統在整個開發過程當中的主要做用是控制:當系統在代碼存儲庫中探測到修改時,它將運行構建的任務委託給構建過程自己。若是構建失敗了,那麼CI系統將通知相關人員,而後繼續監視存儲庫。它的角色看起來是被動的;但它確能快速反映問題。
特別是它具備如下優勢:
* 容易安裝,只須要執行Java -jar jenkins.war, 或者直接部署到一個servlet container中,例如tomcat。不須要安裝,不須要數據庫的支持。
* 容易配置,jenkins能夠徹底地經過友好的web GUI來配置,且配置頁面支持配置項的錯誤檢查和很好的在線幫助。不須要手動地編輯xml的配置文件,可是jenkins也支持手動修改xml配置文件。
* 項目源碼修改的檢測,jenkins可以從項目的Subversion/CVS生成最近修改的集合列表,且改方式很是有效,不會增長Subversion/CVS Repository的負載。
* 可讀的永久的連接生成,jenkins對於大部分pages都生成清楚的可讀的永久的連接,例如''latest build"/"latest successful build",所以能夠容易地在其餘的地方引用jenkins的生成的pages。
* RSS/EMail/IM集成,能夠經過RSS,EMail或IM來實時地監視build的失敗。
* Build完成後仍然能夠tag,支持在build完成後tag或重tag。
* Junit/TestNG 測試報告,可以很好地顯示各類測試的報告,且能夠生成失敗的趨向圖。
* 分佈式build,jenkins可以分發build/test的負載到多臺機器,可以更好地利用硬件資源,提升build的時間。
* 文件標識,jenkins能夠標識build產生的文件,例如jars。
* 插件支持,jenkins能夠經過第三方的插件來擴展。
* 跨平臺,支持幾乎全部的平臺,例如Windows,Ubuntu/Debian,Red Hat/Fedora/CentOS,Mac OS X,openSUSE,FreeBSD,OpenBSD,Solaris/OpenIndiana.Gentoo。