Jenkins

http://blog.csdn.net/wangmuming/article/category/2167947web



Jenkins 是一個可擴展的持續集成引擎。數據庫

主要用於:分佈式

  • l 持續、自動地構建/測試軟件項目。ide

  • l 監控一些定時執行的任務。工具

Jenkins擁有的特性包括:測試

  • l 易於安裝-只要把jenkins.war部署到servlet容器,不須要數據庫支持。優化

  • l 易於配置-全部配置都是經過其提供的web界面實現。ui

  • l 集成RSS/E-mail經過RSS發佈構建結果或當構建完成時經過e-mail通知。spa

  • l 生成JUnit/TestNG測試報告。.net

  • l 分佈式構建支持Jenkins可以讓多臺計算機一塊兒構建/測試。

  • l 文件識別:Jenkins可以跟蹤哪次構建生成哪些jar,哪次構建使用哪一個版本的jar等。

  • l 插件支持:支持擴展插件,你能夠開發適合本身團隊使用的工具。


部署一個CI系統須要的最低要求是,一個可獲取的源代碼的倉庫,一個包含構建腳本的項目。

下圖歸納了CI系統的基本結構

 


1.1 Jenkins的目標

Jenkins的主要目標是監控軟件開發流程,快速顯示問題。因此能保證開發人員以及相關人員省時省力提升開發效率。

CI系統在整個開發過程當中的主要做用是控制:當系統在代碼存儲庫中探測到修改時,它將運行構建的任務委託給構建過程自己。若是構建失敗了,那麼CI系統將通知相關人員,而後繼續監視存儲庫。它的角色看起來是被動的;但它確能快速反映問題。

特別是它具備如下優勢:

  • l Jenkins一切配置均可以在web界面上完成。有些配置如MAVEN_HOME和Email,只須要配置一次,全部的項目就都能用。固然也能夠經過修改XML進行配置。

  • l 支持Maven的模塊(Module),Jenkins對Maven作了優化,所以它能自動識別Module,每一個Module能夠配置成一個job。至關靈活。

  • l 測試報告聚合,全部模塊的測試報告都被聚合在一塊兒,結果一目瞭然,使用其餘CI,這幾乎是件不可能完成的任務。

  • l 構件指紋(artifact fingerprint),每次build的結果構件都被很好的自動管理,無需任何配置就能夠方便的瀏覽下載。