1. 程式人生 > >Sonar本地環境搭建

Sonar本地環境搭建

一個新專案準備上線提測了,為了在提測之前做一下程式碼走查,同時瞭解專案目前的質量情況,就在本地搭建了一套sonar環境。搭建的過程中遇到了很多問題,sonar官方已不再維護Eclipse的svn外掛,所以之前很多網上的教程都存在問題了。通過自己的摸索,最後還是成功搭建好了環境。下面我們開始搭建吧。

1 準備階段

(1)下載MySQL,地址:http://dev.mysql.com/downloads/installer/
(2)下載SonarQube,地址:http://www.sonarqube.org/downloads/
(3) 下載SonarQube中文外掛,地址:http://download.csdn.net/detail/u010218242/9272667

1.2 環境準備
(1)確保本機已經安裝JDK
(2)安裝資料庫
由於sonar需要資料庫支援,我們首先安裝資料庫,這裡使用mysql(當然你也可以安裝其他資料庫)。

第一步:安裝mysql,安裝流程就不說了,這裡特別需要注意的是選擇編碼格式的時候一定要選擇utf8.

這裡寫圖片描述

第二步:使用命令建立資料庫,名字為sonar:

CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;

第三步:建立一個sonar使用者並把這個使用者的密碼設定為soanr:

CREATE USER ‘sonar’ IDENTIFIED BY ‘sonar’;

第四步:將第二步中建立的sonar資料庫的所有許可權賦給第三步中建立的sonar使用者:

GRANT ALL ON sonar.* TO ‘sonar’@’%’ IDENTIFIED BY ‘sonar’;
GRANT ALL ON sonar.* TO ‘sonar’@’localhost’ IDENTIFIED BY ‘sonar’;
FLUSH PRIVILEGES;

這裡寫圖片描述

至此資料庫已經建好了。
這裡寫圖片描述

  1. 安裝SonarQube
    第一步:將下載的sonarqube解壓到你的本地目錄

這裡寫圖片描述
第二步:修改配置檔案,開啟conf目錄下的日誌檔案,然後加入以下資訊:

sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

這裡寫圖片描述

第三步:bin目錄下會有各種平臺的啟動指令碼,我用的windows-x86-32的:

這裡寫圖片描述

點選StartSonar.bat,開始啟動。第一次啟動需要初始化資料庫,需要等一會兒:
這裡寫圖片描述

第四步:在瀏覽器中開啟http://localhost:9000/,正常安裝的情況會顯示如下介面:

這裡寫圖片描述
至此,我們的SonarQube已經安裝成功了,如果想要使用SonarQube平臺管理我們的程式碼質量,還需要安裝程式碼解析工具。通常我們使用maven來整合sonar的解析,請看下小節。

  1. Maven中整合sonar
    第一步:在maven的setting.xml檔案中加入以下內容:
<profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
              <sonar.jdbc.url>jdbc:mysql://localhost:3306/sonar?useUnicode=true&amp;characterEncoding=utf8&amp;rewriteBatchedStatements=true</sonar.jdbc.url>
              <sonar.jdbc.username>sonar</sonar.jdbc.username>
              <sonar.jdbc.password>sonar</sonar.jdbc.password>
               <sonar.host.url>http://localhost:9000</sonar.host.url>
            </properties>
        </profile>

第二步:接下來在sonarqube啟動的情況下,進入maven專案中,執行mvn sonar:sonar命令,等待結束。那麼在http://localhost:9000下就可以檢視sonar分析的結果了。

對於開發者來說,如果我們能夠在Eclipse中直接整合sonar那是更加方便了,我們可以直接在Eclipse中檢視sonar問題。接下來我們演示如何在Eclipse中整合sonar。

4. Eclipse整合sonar

第一步:安裝sonar外掛,開啟Help > Install New Software… ,輸入下面這個網址 (http://downloads.sonarsource.com/eclipse/eclipse/),接下來就會顯示下面這個介面內容
這裡寫圖片描述

然後點選next安裝就OK了,完成安裝之後會提示你重新啟動。

第二步:Eclipse上執行sonar,Eclipse執行maven命令:sonar:sonar:

這裡寫圖片描述
這裡寫圖片描述
再去locahost:9000下面檢視,已經ok:

這裡寫圖片描述
如果我們想直接在Eclipse中檢視sonar問題,我們點選工程右鍵,如下圖:

這裡寫圖片描述
然後再次右擊工程,進行解析,如下圖:

這裡寫圖片描述
分析結果:

這裡寫圖片描述

到這裡,sonar本地環境搭建已經完全ok!

總結:
在本地搭建sonar環境的過程當中,經歷了各種問題,版本問題、官方sonar外掛不維護問題…通過各種嘗試終於搞定,如果你安裝的過程當中出現了什麼問題可以聯絡我。