SonarQube 是一個用於管理源代碼質量開放平臺,能夠從多個維度檢測代碼質量,快速的定位代碼中潛在的或者明顯的 Bug、錯誤,提供重複代碼、編碼標準、單元測試、代碼覆蓋率、代碼複雜度、潛在Bug、註釋和軟件設計報告。支持包括 Java、Python、Php、C/C++、C#、HTML、JavaScript、PL/SQL、Objective C 等二十多種編程語言的代碼質量管理與檢測。經過插件機制,SonarQube能夠繼承不一樣的測試工具,代碼分析工具,以及持續集成工具。可與IDE(如:Eclipse、IDEA等)集成使用。mysql
SonarQube 並非簡單地直接將各類質量檢測工具(例如 FindBugs,PMD 等)的結果展示給客戶,而是經過不一樣的插件算法來對這些結果進行再加工,最終以量化的方式來衡量代碼質量,從而方便地對不一樣規模和種類的工程進行相應的代碼質量管理。更多相關介紹不在此贅述。git
引用SonarQube官網提供的架構圖, 經過圖中描述整個SonarQube的分析分爲幾個部分:github
本文則根據主要描述,記錄本地Windows下SonarQube Server及Databse的配置。主要環境以下:web
本文使用的版本爲 SonarQube 6.7.5 LTS , 官方下載地址。安裝的基本要求以下:算法
更多環境要求,見官方文檔官方,詳見。 另,須要分析Maven項目時,須要本地下載配置Maven,版本Maven 3.0+。sql
官網下載SonarQube後,解壓到任意目錄(建議,非中文目錄),目錄結構大體以下:數據庫
各目錄做用以下:編程
SonarQube 支持大多數主流關係型數據庫(例如 Microsoft SQL Server, MySQL, Oracle, PostgreSQL 等),默認使用H2數據庫,能夠直接運行啓動,此處配置MySQL數據庫。windows
MySQL建立數據庫瀏覽器
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;
修改SonarQube配置文件 找到 ..\sonarqube-6.7.5\conf
目錄下的 sonar.properties
,首先搜索 # User credentials.
配置JDBC鏈接的用戶名及密碼(此處爲上步建立的用戶):
sonar.jdbc.username=sonar sonar.jdbc.password=sonar
搜索 MySQL 5.6 or greater
,配置數據庫連接 URL :
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
到此完成了 MySQL 的簡單配置
注意: SonarQube支持的爲InnoDB引擎,能夠在MySQL配置文件內的 [mysqld] 下配置 default-storage-engine=INNODB
來實現建立的表默認使用 InnoDB 引擎。
在目錄 ..\sonarqube-6.7.5\bin\windows-x86-64
下,雙擊 StartSonar.bat
啓動服務,出現 [o.s.a.SchedulerImpl] Process[es] is up
提示時,表示 elasticsearch
啓動成功
此時,能夠在瀏覽器內訪問 http://localhost:9000
來登錄SonarQube管理頁面 (注意,運行期間不要關閉命令行)
首次啓動時,會在配置MySQL數據庫內生成相關的表及初始化數據
到此SonarQube服務啓動成功,如想修改訪問端口等內容,在 ..\sonarqube-6.7.5\conf\sonar.properties
文件內修改。
在目錄 ..\sonarqube-6.7.5\bin\windows-x86-64
下能夠看到多個bat批處理文件
爲了方便,且防止命令行意外關閉致使服務中止等狀況,能夠經過管理員方式運行 InstallNTService.bat
,將SonarQube服務添加到系統服務中, 或使用 sc
命令自行添加。如出現服務添加到系統服務後,啓動當即中止的狀況,則經過查看 ..\sonarqube-6.7.5\log
目錄下的日誌來查看問題,如無日誌,嘗試卸載服務,嘗試使用 sc
命令添加服務。更多 sc
命令內容參看百度百科
啓動服務後,能夠在SonarQube管理頁面的應用市場內添加須要的插件,如漢化包、代碼分析插件:
服務頁面點擊登錄,輸入用戶名密碼 ,默認爲 admin / admin
, 默認密碼能夠在 ..\sonarqube-6.7.5\conf\sonar.properties
文件內修改。
首次登錄帳號,會提示配置分析的項目及token,可跳過
配置完成後,點擊 Finish..
,進入操做頁面
下面安裝 Chinese Pack (漢化包)
,演示插件安裝。
導航欄選擇 Administration
跳轉到Administration頁面,選擇 Marketplace
進入應用市場
安裝完成後,出現相似以下提示,點擊 restart
重啓服務便可
等待幾秒鐘,服務會自動重啓,從新登陸後,能夠看到漢化結果
其餘插件安裝相似如上操做,根據須要選擇安裝便可。
出現相似提示時,能夠嘗試在文件 ..\sonarqube-6.7.5\conf\wrapper.conf
中添加Java JDK的路徑,通常正常配置了Java環境變量,此處不須要配置。
啓動服務時,出現相似提示,是因爲 Java(TM) Platform SE binary
此後臺進程沒有關閉,致使jar包被加載佔用,沒法訪問。
此時使用任務管理器,關閉對應進程便可。
安裝漢化包,重啓後,一直重啓狀態,或出現其餘錯誤提示,能夠嘗試在 此處 下載對應SonarQube版本的漢化包,下載完成後,提取jar包,放置到目錄 ..\sonarqube-6.7.5\extensions\plugins
下,重啓服務便可。