持續集成實踐二之Jenkins與Sonar Qube集成

前言

  做爲一名碼農,曾幾什麼時候,無數次挑燈夜戰,只爲次日爲客戶穩定演示系統,奈何到關鍵時候,會發現代碼中會有不少坑,這個時候,每每是最使人崩潰的。如何能作到提早發現程序潛在的問題,找到隱藏的八阿哥,保證系統的穩定,一直是困擾着咱們的問題。記得之前爲了解決這個問題,部門專門組織每週一次代碼走查,雖然最後狀況有所改善,但費事費力,並未獲得根本上的解決。html

  所幸的是,有些大牛開發出了一系列代碼質量檢測工具,給咱們這些碼農帶來了福音。下面就來介紹一款開源的代碼質量管理系統——SonarQube。相信經過下面簡單的介紹,你會跟我同樣有種相見恨晚的感受。mysql

Sonar Qube簡介

  SonarQube(曾用名Sonar(聲納))是一個開源的代碼質量管理系統。它支持C/C++、JavaScript、C#、Java、COBOL、TypeScript、PL/SQL、PL/I、PHP、FLEX、Python、Swift、XML等超過20種編程語言的檢測。Sonar能夠經過插件Findbugs、Checkstyle等工具持續對代碼進行檢測,可使咱們儘早發現項目中的Bugs,漏洞及壞味道,從而保證軟件產品質量。git

環境準備

Sonar 安裝

  1. SonarQube下載。首先,到Sonar官網https://www.sonarqube.org/downloads/)下載安裝包,目前最新版本爲SonarQube 6.7 (LTS *)。將SonarQube解壓到本地任意目錄。windows

  2. 配置Sonar數據庫。Sonar默認使用的是H2的內嵌數據庫,內嵌數據庫只能用戶測試場景,本例中使用mysql數據庫,具體配置方法以下:瀏覽器

  在mysql中建立sonar數據庫,以用戶名root,密碼admin爲例。打開...\sonarqube-6.6\conf文件夾,找到sonar.properties文件,修改如下幾個地方:

  配置數據庫用戶名及密碼:

#sonar.properties

sonar.jdbc.username=root
sonar.jdbc.password=admin

  設置數據庫庫鏈接:

#sonar.properties
 
 sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
 sonar.jdbc.driverClassName:com.mysql.jdbc.Driver
 sonar.jdbc.validationQuery:select 1

  設置鏈接池:

#sonar.properties

 sonar.jdbc.maxActive:                               20
 sonar.jdbc.maxIdle:                                 5
 sonar.jdbc.minIdle:                                 2
 sonar.jdbc.maxWait:                                 5000
 sonar.jdbc.minEvictableIdleTimeMillis:      600000
 sonar.jdbc.timeBetweenEvictionRunsMillis:  30000
  1. 啓動Sonar。

  啓動Sonar有兩種方式:一種,直接執行...\sonarqube-6.6\bin\windows-x86-64\StartSonar.bat;另外一種,將Sonar安裝爲Windows服務,注意必定要以管理員身份運行...\sonarqube-6.6\bin\windows-x86-64\InstallNTService.bat,安裝成功之後,運行...\sonarqube-6.6\bin\windows-x86-64\StartNTService.bat啓動Sonar。Sonar啓動之後,在瀏覽器中輸入地址http://localhost:9000訪問Sonar主頁。

啓動界面

  1. Sonar漢化。

  下載Sonar漢化插件,連接:https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/tag/sonar-l10n-zh-plugin-1.18,將漢化插件拷貝到...\sonarqube-6.6\extensions\plugins文件夾,重啓Sonar。Sonar重啓之後,在瀏覽器中輸入地址http://localhost:9000訪問Sonar主頁。

漢化後界面

  1. Sonar插件安裝。
  • 安裝 SonarJava 插件Java代碼分析器;

  • 安裝SonarJS插件,JavaScript代碼分析器;

  • 安裝SonarXML插件,XML分析器;

  • 安裝Web插件,HTML, JSP, JSF, ..代碼分析器;

  • 安裝CSS / SCSS / Less插件,CSS、Less代碼分析器;

  • 安裝SonarC# 插件,C#代碼分析器;

  • 安裝SonarQube :: Plugins :: SCM :: SVN插件;

  • 安裝Checkstyle插件,Provide Checkstyle rules for Java projects;

  • 安裝Findugs 插件,Provide Findbugs rules for analysis of Java projects。

  1. 配置SCM權限。

    配置SCM權限

Scanner安裝

  1. 下載SonarQube Scanner 3.0.3安裝包(連接:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner)。將SonarQube Scanner 3.0.3安裝包解壓到任意目錄。
  2. 配置SonarQube Scanner。打開...\sonar-scanner-3.0.3.778-windows\conf文件夾,找到sonar-scanner.properties並以文本編輯器打開,配置以下:

    # ----- Default SonarQube server
    sonar.host.url=http://localhost:9000
    
    # ----- Default source code encoding
    sonar.sourceEncoding=UTF-8

Jenkins集成

  1. Jenkins安裝。請參照上一篇文章,連接:https://my.oschina.net/lsjcoder/blog/1573648

  2. 安裝SonarQube Scanner for Jenkins插件安裝。系統管理->管理插件,找到SonarQube Scanner for Jenkins插件,安裝完成後重啓Jenkins。

    安裝SonarQube Scanner

  3. 配置SonarQube Server。

    配置SonarQube Server

  4. 配置SonarQube Scanner。

    配置SonarQube Scanner

  5. 項目中增長SonarQube Scanner掃描配置。

    添加發布後步驟

    項目掃描配置

  6. 當即構建,查看控制檯日誌輸出。

    分析結果

分析結果

  點擊上面的連接,便可打開SonarQube,查看項目分析結果。

結果瀏覽

總結

  在整合流程中,須要注意一下幾點:

  1. mysql版本必需要安裝5.6及以上版本,不然會致使Sonar因不兼容而沒法正常運行;
  2. SonarQube未配置SCM權限,會致使報」SVNAuthenticationException「的錯誤;
  3. 注意必定要安裝各類語言分析插件,不然會報」No quality profiles have been found, you probably don't have any language plugin installed「的錯誤;

  至此,Jenkins與Sonar Qube的初步集成工做已初步完成,下面就會針對自動檢測出來的Bugs、漏洞及壞味道,進行逐一修復,還掉之前欠下來的技術債務。


歡迎關注個人微信公衆號:

相關文章
相關標籤/搜索