本文主要講解sonar的安裝及使用。 分為兩個維度來講解
1. 使用sonarqube以及自帶的Derby數據庫
2. 使用sonarqube以及配置mysql數據庫
--------------------------------------------------------
一、使用sonarqube以及自帶的Derby數據庫
sonarqube是一款代碼質量檢測工具,促使你養成一個好的代碼規范。下面是我測試的我們正在使用的一個項目。這里使用的是sonar自帶的Derby數據庫。沒有更改任何的配置文件。
第一步,下載sonqube和sonar-runner兩款工具。使用soanr 的前提是電腦已經安裝jdk環境。由於這里使用的是默認數據庫,所以對mysql的服務沒有要求,對sonqube的版本也沒有什么要求,如果后續使用其它數據庫的時候,注意版本不支持的問題。 sonqube是相當於sonar的服務端,soanr-runner是sonar的客戶端。
sonqube下載地址:http://www.sonarqube.org/downloads/
Sonar-Runner下載: http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.4/sonar-runner-dist-2.4.zip
中文補丁包下載: https://github.com/SonarCommunity/sonar-l10n-zh
第二步,下載后,把解壓后的sonarqube和soanr-runner文件移動到/usr/lcoal/ 文件夾下,然后進入sonarqube的bin目錄。啟動相應版本的服務,如果是Mac的話,就選擇Mac文件夾,然后執行./soanr start命令,就會看到服務已經啟動。然后在瀏覽器訪問http://localhost:9000就會看到,sonar的默認端口為9000。
其他命令和linux基本類似: ./soanr start
./soanr stop
./soanr status
在瀏覽器訪問http://localhost:9000后看到的界面
第三步,配置環境變量。vi ~/.bash_profile,然后編輯
export SONAR_HOME=/usr/local/sonarqube-6.3.1 export SONAR_RUNNER_HOME=/usr/local/sonar-runner-2.4 exportPATH=$PATH:$SONAR_RUNNER_HOME/bin:$JAVA_HOME/bin
編輯完保存,然后source ~/.bash_profile使環境變量生效。可以使用echo $PATH
查看配置的正確性。
這個也不多說, 比較簡單
第四步,在項目中使用。使用的話,需要在項目中配置sonar-project.properties文件,位置就和你pom.xml文件的位置一樣。配置屬性如下:
這里要重點說一下, 有個坑, 大家參考文獻一的時候需要注意了。
sonar.projectKey=xiugr-server-service sonar.projectName=xiugr-server-service sonar.projectVersion=1.0 sonar.sourceEncoding=UTF-8 sonar.language=java sonar.sources=. sonar.projectBaseDir=src/main/java sonar.binaries=classes
這是文獻一給出的配置信息, 我用這個調試, 總是包BUILD FAILURE 。后來找到原因, 在mac上還需要添加一個配置信息
sonar.java.binaries=.
因為剛開始對這個不太熟悉, 也不知道是缺少啥配置, 走了不少彎路, 這里貼出來,希望大家不要走彎路。
這些個屬性很通俗易懂,只需要注意projectkey是唯一的就好。
下面貼出來在idea中的項目結構,和配置文件內容。
接下來,cd到項目路徑下,執行sonar-runner命令,看到EXECUTION SUCCESS的時候就意味着你已經執行成功了。
如果失敗的話,看你是否是在配置文件的路徑下執行的
執行成功后會看到這個界面
然后在去sonar的web頁面上就可以看到項目的質量檢測信息了
第四步,漢化插件的安裝方法
下載地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh
在頁面上找最新的中文插件下載地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/latest)
也可以直接點擊上一鏈接, 下載sonar-l10n-zh-plugin-1.22.jar文件
將文件放入到sonarqube的根目錄-->extensions -->plugins下即可。
----------------------------------------------------------------------
二、 使用sonarqube以及配置mysql數據庫
為什么要配置mysql
存儲掃描規則和問題,網頁的數據都來自數據庫!你自己搭建的服務器,不管是sonarqube還是其他的都需要存數據啊!
第一步: 新建一個mysql庫---名字就叫sonar
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER ‘sonar’ IDENTIFIED BY ‘sonar’;
GRANT ALL ON sonar.* TO ‘sonar’@’%’ IDENTIFIED BY ‘sonar’;
GRANT ALL ON sonar.* TO ‘sonar’@’localhost’ IDENTIFIED BY ‘sonar’;
第二步:修改配置文件conf\sonar.properties文件
sonar.jdbc.url=jdbc:mysql://172.16.30.228:3306/qjfsonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance sonar.jdbc.username=gmsd sonar.jdbc.password=gmsdtrade
第三步: 重啟sonar就可以了
----------------------------------------------------
參考文獻:
1. https://blog.csdn.net/qq_33350186/article/details/72772242 (主要參考文獻)
2. https://www.cnblogs.com/fanbi/p/6504513.html
3.https://github.com/SonarQubeCommunity/sonar-l10n-zh
4.https://www.ibm.com/developerworks/cn/java/j-lo-sonar/