1.解壓縮SonarQube和SonarQube Scanner,將下載好的sonar-l10n-zh放到SonarQube安裝目錄下的extensions\plugins文件夾中,運行SonarQube目錄下面bin文件夾下對應於本身系統的StartSonar.bat就能夠了,例如個人路徑是:D:\Sonar\sonarqube-7.0\sonarqube-7.0\bin\windows-x86-64,成功運行後打開瀏覽器輸入http://localhost:9000/,用戶名和密碼默認admin,進入之後就打開Sonar頁面了。默認語言是中文,只不過中文化有些不完全。 java
2.打開SonarQube目錄下conf文件夾下的sonar.properties,配置:git
sonar.sorceEncoding=UTF-8github
sonar.login=admin數據庫
sonar.password=adminwindows
3.進入解壓縮後的Scanner目錄,將bin路徑加入到環境變量path中進行配置,而後打開Scanner目錄下的sonar-scanner.properties文件,配置:瀏覽器
sonar.sorceEncoding=UTF-8bash
sonar.login=adminapp
sonar.password=admin工具
sonar.scm.disablied=truegradle
配置完成以後,運行cmd,輸入sonar-scanner -version,看到版本信息就說明配置成功了
4.登錄成功後,進入到配置 -> Marketplace -> 搜索Android安裝,或者下載離線包,將離線包插件放到SonarQube的extensions\plugins目錄下,此處我已安裝好,如圖所示:
安裝完成以後,能夠在質量配置裏面設置Java默認檢測規範:
這裏能夠看到默認是P3C,即爲阿里開發規範的PMD插件,後面會再作說明。
項目上配置有兩種方式,能夠採用咱們上面下載的SonarQube Scanner,或者在Android Studio中的頂層build.gradle中使用(推薦)。下面分別介紹:
1.使用SonarQube Scanner,在項目根目錄下,新建sonar-project.properties文件,配置如下信息:
sonar.projectKey=P3CDemo
sonar.projectName=P3CDemo
sonar.projectVersion=1.0
sonar.sources=app/src/main/java
sonar.binaries=app/build/intermediates/classes/
sonar.language=java
sonar.sourceEncoding=UTF-8
sonar.profile=Android Lint
打開cmd,進入項目所在根目錄,輸入命令:sonar-runner,分析成功後出現:EXECUTION SUCCESS
注意在scanner過程當中,以前開啓的StartSonar.bat不能關閉
以後就能夠在Sonar界面看到項目的質量分析圖了:
2.在Android Studio中配置Sonar插件:
在AS中打開setting-Plugins-Browse repositories,搜索sonar,點擊SonarLint安裝。
而後在Other Settings下面配置Server信息,新建一個SonarQube Server用於設置鏈接服務,設置完成之後能夠點擊update binding嘗試鏈接一下 在test binding的時候可能會出現提示某個插件版本比較低的狀況,能夠在sonar plugin中有針對性下載更新插件。
在下拉框中選擇Login/Password帳號密碼登錄
接下來在SonarLint Project Settings,勾上enable選項,選擇剛纔新建的那個Server,選擇SonarQube project(這個project應該是以前在第二步Sonar-runner 分析過的,server裏面有記錄的)。
各位看官不要着急,僅剩下最後一步便可完成配置了。
在Android Studio項目層級的build.gradle文件中,設置:
在buildscript後添加:
plugins {
// 添加插件信息
id "org.sonarqube" version "2.6.2"
}
subprojects {
sonarqube {
properties {
property "sonar.host.url", "http://localhost:9000/"
property "sonar.sourceEncoding", "UTF-8"
property "sonar.projectKey", "MOGUTest"
property "sonar.projectName", "MOGUTest"
property "sonar.projectVersion", "1.0"
property "sonar.sources", "src/main/java"
property "sonar.binaries", "build/intermediates/classes"
}
}
}
複製代碼
這裏須要注意,在sonar.source以及sonar.binaries後文件位置去掉了app/ 區別於sonar-project.properties的配置
至此,能夠執行代碼檢測任務了: 在目錄下命令行執行 ./gradlew.sh sonarqube或者執行gradle中的project -> other -> sonarqube
能夠在sonar中看到項目代碼質量基於sonar java或者Android Lint檢測的結果。接下來咱們看如何實現將阿里巴巴規範的插件加入帶sonar的配置檢測中:
sonar-pmd是sonar官方的支持pmd的插件,可是還不支持p3c,須要在pmd插件源碼中添加p3c支持(p3c是阿里在pmd基礎上根據阿里巴巴開發手冊實現了其中的49開發規則)。github上已有的sonar-p3c-pmd地址:github.com/mrprince/so… ,在wiki中有具體安裝說明,須要從新編譯jar包。 目前阿里P3C-PMD中java規則有53條,能夠從此處查找已編譯好的sonar-pmd插件,將插件放到sonarQube的extensions\plugins目錄下,在sonar上找到配置 -> 系統 -> Restart Server
重啓成功再次登錄後,在質量配置裏面建立一個新的代碼規則來匹配P3C的標準:
此時的P3C規則還未激活,而且沒有規則制度,所以須要在sonar中查到到符合P3C的規則進行批量修改:
首先激活P3C,點擊P3C紅色未激活處,變爲綠色已激活狀態便可,接下來進行批量修改
此處爲已添加效果,未添加或者要新添加規則均可以經過批量修改進行導入。
將P3C設爲默認代碼檢測規範,執行gradle,此處寫了一個阻斷類型的代碼(壞味道)來檢測有效性:
對於如何添加團隊定製的代碼規範,能夠參考上面下載的P3C-PMD插件裏的寫法
如如有誤,歡迎交流