一。 Sonar簡介javascript
sonarqube系統是一個代碼質量檢測工具 由如下四個組件組成(https://docs.sonarqube.org/display/SONAR/Architecture+and+Integration)java
1》一個sonarqube服務器 包含三個子進程(web服務(界面管理),搜索服務 計算引擎服務(寫入數據庫))mysql
2》一個sonarqube數據庫 配置sonarqube服務git
3》多個sonarqube插件 位於解壓目錄 extensions\plugins目錄github
4》一個或者多個sonarqube scanners 用於分析特定的項目web
使用SonarQube(簡稱SQ)工做流程sql
開發者使用開發工具(eclipse,ide)上傳代碼到SCM(源代碼管理器) 系統自動同步代碼到某個位置 sonarqube scanners 掃描該代碼檢查質量 將分析結果 將分析結果推送到SQServer 存儲在SQ數據庫 用戶能夠使用eclipse插件sonarlint來同步sonarqube服務器配置(java和js版本等)能夠實時在線分析數據庫
二。SonarQube安裝windows
sonarqube官方文檔(文檔https://docs.sonarqube.org) 瀏覽器
安裝過程參考(https://docs.sonarqube.org/display/SONAR/Setup+and+Upgrade)
1》下載而且解壓
下載 sonarqube-5.4 點擊文檔 https://docs.sonarqube.org/display/SONAR/Get+Started+in+Two+Minutes 的download page 進入下載
這裏使用window解壓後進入 sonarqube-5.4\bin\windows-x86-64目錄
點擊 StartSonar.bat運行
瀏覽器輸入地址 http://localhost:9000/ 輸入帳號密碼 admin/admin 進入
2》修改SQ默認的數據庫
sq支持多種數據庫引擎 默認內嵌了一個數據庫 默認打開端口9092 這裏使用mysql替代
啓動任意mysql 建立一個數據庫 名字:sonar
找到conf/sonar.properties 將配置文件如下幾項打開
#----- MySQL 5.x
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?
useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=root
sonar.jdbc.password=123456
從新啓動 使用客戶端鏈接mysql 的sonar庫發現多了不少表
3》SQ漢化
點擊官方文檔左側的Plugins 進入右側右下角的Localization 點擊Chinese 進入了github地址(
https://github.com/SonarQubeCommunity/sonar-l10n-zh) 對應版本是
SonarQube 6.0 6.1 6.2 6.3 6.4 6.5 6.6 6.7
sonar-l10n-zh 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19
SonarQube 5.4 5.5 5.6
sonar-l10n-zh 1.9 1.10 1.11
SonarQube 4.0 4.1
sonar-l10n-zh 1.7 1.8
SonarQube 3.1 3.2 3.3 3.4 3.5 3.6 3.7
sonar-l10n-zh 1.0 1.1 1.2 1.3 1.4 1.5 1.6
查看對應的版本 5.4須要1.9的sonar-l10n-zh 點擊releases下載對應版本
將下載好的jar 置入 extensions\plugins目錄下
重啓服務 訪問http://localhost:9090發現變成中文版
另一種方式 也能夠登陸系統 點擊配置-系統-更新中心管理插件 能夠在線搜索安裝chinese插件
三。Sonar分析項目
1》命令行使用SonarQube Scanner分析
進入官方文檔 點擊Scanners 點擊子菜單 Analyzing with SonarQube Scanner 根據官方向導進行配置
點擊 文檔頂部的 不一樣系統版本 這裏是 Windows 64 bit 下載後 解壓
設置 sonar-scanner-3.0.3.778-windows\bin 設置到環境變量PATH中
修改 conf/sonar-scanner.properties 指定sonar qube服務器的地址 默認若是按照在本機無需修改
sonar.host.url=http://localhost:9000
找一個有源代碼的項目 好比我有個項目叫kafka 在項目的根目錄 添加一個配置文件sonar-project.properties 添加內容
# 當前項目實例的惟一表示
sonar.projectKey=kafka
# 顯示在sonarqube 界面上的項目名稱
sonar.projectName=kafka
sonar.projectVersion=1.0
# 相對於當前配置文件目錄 下的源代碼目錄 無論什麼平臺路徑分隔符只能有 / 不能使用\
sonar.sources=src/main/java
# 源代碼的字符集
#sonar.sourceEncoding=UTF-8
進入kafka項目根目錄 執行命令 sonar-scanner 出現 執行 EXECUTION SUCCESS 表示成功
成功後進入qb ui界面 http://localhost:9000 能夠看到多出一個kafka的項目列表
點擊項目名稱 進入 能夠看到該項目的全部統計 包括存在問題
點擊問題進入 就能看到對應的問題列表
eclipse ide安裝sonarlint 實時監測代碼質量 插件地址https://github.com/SonarSource/sonarlint-eclipse 能夠使用markerplace搜索安裝
安裝使用mars(4.5.2) 不管是markerplace仍是下載包離線安裝都沒法安裝 安裝Eclipse Java Oxygen版本 能夠在markerplace搜索安裝
查找視圖 SonarQube Servers 點擊 Connect to a SonarQube server
選中 sonarqube點擊下一步 輸入url http://localhost:9000 輸入用戶名和密碼 (admin/admin) 點擊完成 拋出錯誤
Starting SonarLint for Eclipse 3.3.1.201712071600
The following plugins do not meet the required minimum versions, please upgrade them on your SonarQube server:
java (installed: 3.13.1, minimum: 4.0)
javascript (installed: 2.11, minimum: 2.14)
由於sonarqube使用 sonar-java插件來掃描java代碼 使用 sonar-javascript插件掃描js代碼 控制質量 這裏我使用的sonarqube必須是 5.6版本 默認的java插件時3.13.1 (https://github.com/SonarSource/sonar-java)最小必須使用4.0 js插件時 2.11 最小必須是 2.14 (https://github.com/SonarSource/SonarJS)能夠去github上搜索兩個插件到release上下載 刪除以前的版本 替換到 extensions\plugins目錄便可
再次在 SonarQube Servers 右鍵 Update all project setting 發現再也不報錯
在項目上右鍵 分析項目 在SonarLint Report查看到全部分析結果