jenkins學習 01 jenkins介紹

jenkins 是一個可擴展的持續集成引擎。web

使用Jenkins目的:服務器

  • 持續、自動地構建/測試軟件項目。
  • 監控一些定時執行的任務。

jenkins擁有的特性:app

  • 易於安裝,只要jenkins.war部署到servlet容器(好比直接放到Tomcat的webapps下面),就能夠運行。
  • 易於配置,配置都是在其提供的web界面實現。
  • 集成RSS/E-mail經過RSS發佈構建結果或用e-mail通知。
  • 生成JUnit/TestNG測試報告。
  • 分佈式構建支持。jenkins可以讓多態計算機一塊兒構建、測試。
  • 文件識別:jenkins可以跟蹤哪次構建生成哪些jar包,哪次構建使用哪一個版本的jar包
  • 插件支持:支持擴展插件。

jenkins的由來:webapp

 

目前持續集成(CI)已經成爲 軟件開發團隊在整個開發聲明週期內側重於保證代碼質量的常見作法。它是一種實踐,旨在緩和和穩固軟件的構建過程。而且幫助開發團隊應對以下挑戰:分佈式

  • 軟件構建自動化:配置完成後,CI系統依照預先指定的時間表,或者針對某一特定事件,對目標軟件進行構建。
  • 構建可持續的自動化檢查:CI系統能持續的獲取新增或修改後簽入的源代碼,也就是說,當軟件開發團隊須要週期性的檢查新增或修改後的代碼時,CI系統會不斷確認這些代碼是否破壞了原有軟件的成功構建。
  • 構建可持續的自動化測試:構建檢查的擴展部分,構建後執行預先定義的一套測試規則,完成後觸發通知(E-mail, RSS )給相關的當事人。
  • 生成後續過程的自動化:當自動化檢查和測試成功完成,軟件構建的週期中可能也須要一些額外的任務,諸如生成文檔、打包軟件、部署構建到一個運行環境或軟件倉庫。

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

下圖是CI系統的基本結構:優化

該系統的各個組成部分是按以下順序發揮做用的:網站

1: 開發者檢入代碼到源代碼倉庫。ui

2:CI系統會爲每個項目建立一個單獨的工做區。當預設或請求一次新的構建時,它將源代碼倉庫的源代碼存放到工做區。spa

3:CI系統會在對應的工做區內執行構建過程。

4: (配置若是存在)構建完成後,CI系統會在一個新的構件中執行定義的一套測試。完成後觸發通知(E-mail, RSS)給相關的當事人。

5: (配置若是存在)若是構建成功,這個構件會被打包並轉移到一個部署目標(如應用服務器)或存儲爲軟件倉庫中的一個新版本。軟件倉庫能夠是CI系統的一部分,也能夠是一個外部的倉庫,諸如一個文件服務器或網站。

6:CI系統一般會根據請求發起相應的操做,諸如即時構建、生成報告、或者檢索一些構建好的構件。

 

Jenkins就是這麼一個CI系統,以前叫作Hudson。

使用Jenkins的理由:

  • 是全部CI產品中,安裝和配置上最簡單的。
  • 基於web訪問,用戶界面友好
  • Jenkins是基於JAVA開發的,但它不只限於構建基於JAVA的軟件。
  • Jenkins擁有大量的插件。

 CI系統在整個開發過程當中的主要做用是:當系統在代碼存儲庫中探測到修改時,它將運行構建的任務委託給構建過程本事。若是構建失敗,CI系統會通知相關人員,而後繼續監視存儲庫。

       

特別是它具備如下優勢:

  • Jenkins一切配置均可以在web界面上完成。有些配置如MAVEN_HOME和Email,只須要配置一次,全部的項目就都能用。固然也能夠經過修改XML進行配置。
  • 支持Maven的模塊(Module),Jenkins對Maven作了優化,所以它能自動識別Module,每一個Module能夠配置成一個job。至關靈活。
  • 測試報告聚合,全部模塊的測試報告都被聚合在一塊兒,結果一目瞭然,使用其餘CI,這幾乎是件不可能完成的任務。
  • 構件指紋(artifact fingerprint),每次build的結果構件都被很好的自動管理,無需任何配置就能夠方便的瀏覽下載。
相關文章
相關標籤/搜索