Sonarqube做爲一個很實用的靜態代碼分析工具,在不少項目中都使用。Android天然也不例外。這裏就分享下使用Android Studio時如何在Gradle裏配置Sonarqube。javascript
如下分別就使用公共maven倉庫和私有maven倉庫兩種狀況來簡單說明下:java
一,使用公共Maven倉庫:api
這個比較簡單。瀏覽器
打開gradle sonarqube插件官方網址:https://plugins.gradle.org/plugin/org.sonarqubeapp
能夠看到有兩種方式集成sonarqube插件,能夠選擇適合的方式:maven
1:全部gradle插件版本適用:工具
buildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.2" } } apply plugin: "org.sonarqube"
2:gradle插件版本2.1以上適用:gradle
plugins { id "org.sonarqube" version "2.2" }
二,使用私有Maven倉庫:ui
沒法使用上面的第2種方法了,由於這樣寫gradle會把它認爲是core plugin,默認解析成url
https://plugins.gradle.org/api/gradle/2.14.1/plugin/use/org.sonarqube/2.2
咱們在瀏覽器打開這個網址,會發現是個Json:
{
"id" : "org.sonarqube",
"version" : "2.2",
"implementation" : {
"gav" : "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.2",
"repo" : "https://plugins.gradle.org/m2"
},
"implementationType" : "M2_JAR",
"legacy" : true
}
發現它是在https://plugins.gradle.org/m2里根據「org.sonarqube」這個id找相應插件,而咱們須要的是在本身的私服倉庫裏找插件,顯然這是不合適的。
所以,只能使用上面第1種方法了:
將這一段放入module的build.gradle裏,另外加上task:
sonarqube {
properties {
property "sonar.sources", "src"
property "sonar.java.binaries", "build/intermediates/classes"
property "sonar.test.binaries", "build/intermediates/classes"
...// 加入你須要的配置
}
}
這樣當在配置好你的sonar host:
systemProp.sonar.host.url=https://xxxx:9000/
運行:
gradle sonarqube
稍等片刻,當出現build successfully,就能在sonar portal上看到代碼的狀況了。