寫在前面
SonarQube(簡稱Sonar)是管理代碼質量的開放平台,它可以快速地對代碼質量進行分析,並給出合理的解決方案,提高管理效率,保證代碼質量。
SonarQube的流行,在於以下幾點:
Sonar [下載]及[文檔]
SonarQube Scanners (掃描器)[下載及文檔]
如:當前系統為win10的64位系統,則打開 .../bin/windows-x86-64/StartSonar.bat 文件。
- 開源
- 支持超過25種語言
- 可以通過ecplise等IDE集成,簡便使用
- 詳細的文檔
資源
Sonar [官網],可能需要翻牆訪問。Sonar [下載]及[文檔]
SonarQube Scanners (掃描器)[下載及文檔]
安裝Sonar
下載解壓
下載好SonarQube壓縮包,解壓后,打開根目錄下的 ../bin 文件夾,然后根據系統環境,打開對應下級目錄中的 StartSonar.bat 批處理文件,嘗試啟動SonarQube。如:當前系統為win10的64位系統,則打開 .../bin/windows-x86-64/StartSonar.bat 文件。
測試
啟動瀏覽器,訪問 http://localhost:9000 。如訪問成功,則表示Sonar正常。如訪問失敗,則可以在 ../logs/sonar.log 文件中查看日志。啟動Sonar
操作以下步驟前,請先將Sonar停止運行。
停止方法:操作以下步驟前,請先將Sonar停止運行**。停止方法:關閉 StartSonar.bat,並在任務管理器中,關閉所有java進程。
配置系統變量
新建系統變量 SONAR_HOME,指向SonarQube根目錄,並在系統變量`path`中追加注冊 %SONAR_HOME%\bin。安裝服務
打開 StartSonar.bat 文件所在目錄,運行文件 InstallNTService.bat 安裝服務即可。數據庫支持
Sonar需要數據庫支持,在官方文檔中,列出了所支持的數據庫類型和版本。JDBC所需的jar包都放在了 ../lib/jdbc 文件夾中。
以MySql
為例:
啟動后,可嘗試登錄Sonar,初始用戶名:admin,密碼:admin。
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';
FLUSH PRIVILEGES;
配置文件
建好數據庫后,需在配置文件中寫入數據庫信息。sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&
useConfigs=maxPerformance
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
score.jdbc.driverClassName=com.mysql.jdbc.Driver
測試
啟動Sonar,當次啟動因Sonar會初始化數據庫,耗時20分鍾左右,需耐心等待。啟動后,可嘗試登錄Sonar,初始用戶名:admin,密碼:admin。

中文插件
登錄Sonar后,打開 Administrator → System → Available,然后搜索 chinese Pack,點擊 Install 按鈕安裝,然后根據指引重啟Sonar服務,即可看到中文界面。 另外,也可以從[GitHub]下載插件jar包,然后放在路徑 ../extensionsplugins 下,重啟Sonar服務。下載前,請查看[文檔說明],注意版本對應。安裝Sonar Scanner
Sonar Scanner是用於將項目發布到Sonar進行審查的工具,曾用名Sonar Runner。如果項目使用Maven,請根據Scanner的[官方文檔]進行配置。下載解壓
下載好Sonar Scanner壓縮包,並解壓。配置系統變量
新建系統變量 SONAR_SCANNER_HOME,指向Sonar Scanner的根目錄,並在系統變量`path`中追加注冊`%SONAR_SCANNER_HOME%\bin`。全局配置文件
打開配置文件 ../conf/sonar-scanner.properties,寫入Sonar服務地址,編碼,登錄名和密碼,以及數據庫配置。sonar.host.url=http://localhost:9000
sonar.sourceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
項目配置文件
在目標項目的根目錄下,創建`sonar-project.properties`配置文件。內容如下:#必要屬性,項目唯一標識
sonar.projectKey=
#必要屬性,項目版本
sonar.projectVersion=1.0.0
#必要屬性,項目語言
sonar.language=java
#必要屬性,項目編碼
sonar.sourceEncoding=UTF-8
#可選屬性,項目名稱
sonar.projectName=
#可選屬性,源代碼目錄(多個目錄用逗號分隔)
sonar.sources=
發布項目
在cmd中,進入項目根路徑,輸入命令:sonar-runner,將項目發布到Sonar服務中。
如果出現 EXECUTION SUCCESS,則發布成功!
此時,打開Sonar服務,即可看到項目代碼質量報告!
此時,打開Sonar服務,即可看到項目代碼質量報告!

Eclipse插件--SonarLint
SonarLint是Eclipse最新版的Sonar插件。經測試,此插件適用不低於Mars版本的Eclipse。在線安裝
打開Eclipse的 Help → Marketplace 搜索 SonarLint,執行Install,重啟Eclipse。
配置
新建 sonarLint:
填寫Sonar服務信息:

代碼審查
在目標項目上右鍵彈窗,點擊 SonarLint → Analyze changed files 即可。

此時,我們就可以在項目代碼中,看到藍色下划線,在 SonarLint On-The-Fly
視圖中,看到審查信息了: