Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持續集成環境(二)

上一篇隨筆Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持續集成環境(一)介紹maven和nexus的環境搭建,以及如何使用maven和nexus統一管理庫文件和版本,以及怎麼將本身的模塊上傳至nexus私服,供其餘模塊引用。下面將主要介紹如何利用Jenkins、SVN、Tomcat以及Sonar來完成項目的自動化編譯、測試和發佈,以及檢查項目的代碼質量。html

利器Jenkinsjava

    Jenkins源於另一個持續集成工具Hudson,Hudson在oracle收購sun以前,是開源社區在開發和維護,oracle收購sun以後聲明擁有hudson的商標使用權,後來開發hudson的開源力量只能從新起個名字「Jenkins」來繼續開發,原Hudson則由oracle持續維護,但更新速度比較慢。linux

jenkins地址:http://jenkins-ci.org/程序員

hudson地址:http://hudson-ci.org/web

能夠看到hudson官網右下角oracle的版權logo。咱們這裏就使用Jenkins來搭建持續集成環境。後端

首先從官方上下載jenkins,http://mirrors.jenkins-ci.org/war/ 能夠選擇不一樣的版本。下載完成後放置在服務器某個目錄下,cd到該目錄下,執行:tomcat

java -jar jenkins.war

jenkins內置一個jetty容器,默認使用8080端口,若是你的8080被佔用了,請執行:服務器

java -jar jenkins.war --httpPort=8081

 

固然你也能夠直接把war包放到tomcat目錄下啓動,這樣jenkins就啓動起來了。oracle

image

來到這個界面咱們先作一個事情:系統配置,主要是配置maven和發佈插件。eclipse

一、進入「系統管理」——>「系統設置」:

新增maven,將linux上安裝好的maven配置上去。

image

其餘保持默認配置,保存!

二、進入「系統管理」——>「管理插件」——>「高級」上傳插件

image

上傳完成以後,jenkins就具有了發佈web應用到tomcat各種容器的能力。

注:deploy.hpi插件是我事先從網上下載好了,你也可使用jenkins自帶的插件安裝功能完成插件安裝,但那個比較慢。

三、配置linux服務器上的maven,跟上篇相似你也須要配置linux服務器上的maven,使之鏈接到nexus私服,以及支持發佈模塊到nexus上。

在<settings><servers></servers></settings>節點之間添加:

   1:    <server>  
   2:      <id>snapshots</id>  
   3:      <username>deployment</username>  
   4:      <password>123456</password>  
   5:    </server>  
   6:      <server>  
   7:      <id>releases</id>  
   8:      <username>deployment</username>  
   9:      <password>123456</password>  
  10:    </server>

在<settings></settings>節點之間添加:

   1:  <profiles>
   2:          <profile>
   3:              <id>dev</id>
   4:              <repositories>
   5:                  <repository>
   6:                      <id>local-nexus</id>
   7:                      <url>http://192.168.0.109:8081/nexus/content/groups/public/</url>
   8:                      <releases>
   9:                          <enabled>true</enabled>
  10:                      </releases>
  11:                      <snapshots>
  12:                          <enabled>true</enabled>
  13:                      </snapshots>
  14:                  </repository>
  15:              </repositories>
  16:          </profile>
  17:      </profiles>
  18:   
  19:      <!-- activeProfiles | List of profiles that are active for all builds. | -->
  20:      <activeProfiles>
  21:          <activeProfile>dev</activeProfile>
  22:      </activeProfiles>

 

完成這些配置,咱們就能夠在jenkins上新建項目了。

咱們事先在eclipse中開發的三個項目:maven-parent(父項目,用於統一類庫版本)、maven-support(後端模塊,支撐web項目)、maven-sample(web項目,依賴maven-support),依次來添加:

image

下一步進入後,主要配置兩個地址,svn和maven命令。

image

根據提示進行SVN用戶名、密碼認證便可。

image

對於maven-parent項目,咱們執行install命令便可。保存!

接着建立maven-support項目,因爲該項目是後端模塊,須要發佈到nexus服務器上,因此稍有不一樣:

image

這裏須要執行deploy命令,將該項目發佈到nexus上。另外你最好配置該項目構建在maven-paremt執行以後開始:

image

最好保存!

最好建立maven-sample項目,這是個web項目,配置又稍有不一樣:

image

執行package命令將項目打包成war包。下面作最重要的事情:將打包後的war包自動發佈到tomcat下:

image

注意幾點:

一、WAR/EAR files,必定要填寫相對地址;

二、Manager username、Manager password是你安裝的tomcat用戶名、密碼,若是沒有請經過tomcat的配置文件tomcat-users.xml設置。

三、tomcat url爲你安裝的tomcat訪問地址。

最後仍是設置下構建順序,讓它在maven-support執行完成以後構建:

image

保存!

jenkins首頁上就出現了三個咱們建立好的項目,咱們只須要構建maven-parent就能夠了,由於咱們設置了構建順序:

image

查看構建信息,能夠看到構建的進程,項目先從svn更新下來,而後進行編譯,運行測試用例,打包,發佈的過程。整個過程都由jenkins完成,

image

image

至此jenkins就實現了自動化編譯、測試(本身寫測試用例)、打包發佈、部署。

image

能夠看到tomcat上已經多了maven-sample應用。

image

部署Sonar

http://www.sonarqube.org/官網上下載sonar安裝包,解壓到系統目下,進入到bin目錄下,選擇你的系統版本,進入後執行:

./sonar.sh start

sonar就啓動起來了,默認的端口是9000,你也能夠到conf/sonar.properties配置文件中修改:

sonar.web.port:                           8066

image

在Jenkins安裝sonar插件

和安裝deploy插件方法相似,咱們在系統管理——插件管理中,上傳sonar插件。安裝完成以後,請重啓jenkins。

image

配置jenkins的sonar插件:

進入系統配置

image

根據你的狀況配置sonar,我這裏僅僅修改過sonar的應用端口,因此只須要配置這個,其餘保留默認值。

進入特定項目配置sonar:

image

image

選擇下maven版本,其餘保留默認值。保存!

而後開始構建項目,構建完成後,能夠看到該項目的代碼檢查結果已經被導入到sonar平臺上,經過sonar系統就能夠方便查看該項目的代碼質量狀況:

sonar能夠檢查代碼的複雜度、代碼重複、單元測試覆蓋率、是否有註釋、潛在bug等代碼問題,對於sonar的項目介紹,能夠進一步去研究摸索,在這裏僅介紹jenkins和sonar整合的方法,能夠再實際工做時進一步研究。

image

image

小結

    本文主要介紹如何搭建jenkins以及怎麼利用maven、deploy插件打包、發佈你的項目,最後使用jenkins和sonar配合進行項目的代碼質量檢查。完成整個過程咱們能夠發現,以往的測試、打包、發佈、代碼檢查的工做均可以由人工轉化工具來完成,讓程序員的寶貴時間集中在開發上。回過頭看Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持續集成環境(一)開頭的故事,咱們可能會有不一樣的想法。

相關文章
相關標籤/搜索