# 前言
上一篇文章學習了Sonar,這篇文章來講解sonar runner。區別在于sonar runner是將分析的數據上傳到數據庫中,而sonar則是采用各種方法將數據庫中數據組織成不同的形式展現給用戶。所以sonar依賴于sonar runner,沒有數據也就無法展示。
# 知識點
## 1.sonar的版本與兼容性
gradle默認使用的Sonar Runner版本是2.3的,該版本支持Sonar的版本3.0以及更高。但是如果你非要支持3.0以前的(還是不要有這種事發生吧,勇敢的擁抱新的東西不好么),那就需要自己配置了。
## 2.plugin標識
~~~
apply plugin : 'sonar-runner'
~~~
## 3.如何執行
~~~
gradle sonarRunner
~~~
## 4.Sonar Runner的配置
與sonar的配置項差不多,只是配置方式不一樣而已,這里配置的都是以key/value的形式,而在sonar中是以特殊的屬性名賦值的方式。
~~~
<pre name="code" class="java">sonarRunner {
sonarProperties {
property "sonar.host.url", "http://localhost:9002/"
property "sonar.jdbc.url", "jdbc:mysql://localhost:3306/sonar"
property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver"
property "sonar.jdbc.username", "sonar"
property "sonar.jdbc.password", "sonar"
}
}
~~~
## 5.版本配置
在第1節中講了sonar runner默認版本是2.3,當然你可以修改,通過下面語句修改。
~~~
sonarRunner {
toolVersion = '2.3' // default
}
~~~
## 6.多項目的構建
這里也和sonar類似,我就直接貼配置方式,不再闡述了。
有全局和私有2種配置,可以為每個子項目配置共同屬性,也可以單獨拿出來為每一個子項目配置特殊的屬性。
為每個項目都設置字符編碼為UTF-8
~~~
subprojects {
sonarRunner {
sonarProperties {
property "sonar.sourceEncoding", "UTF-8"
}
}
}
~~~
為project1設置語言為groovy
~~~
project(":project1") {
sonarRunner {
sonarProperties {
property "sonar.language", "grvy"
}
}
}
~~~
為project2設置跳過質量管理。
~~~
project(":project2") {
sonarRunner {
skipProject = true
}
}
~~~
## 7.自定義sourcesets
sonar也有這些配置,so一筆帶過。(為啥都配置呢)
~~~
sonarRunner {
sonarProperties {
properties["sonar.sources"] += sourceSets.custom.allSource.srcDirs
properties["sonar.tests"] += sourceSets.integTest.allSource.srcDirs
}
}
~~~
## 8.不止是Java
same as Sonar,就是可以分析其他的語言。上面已經講過了如何設置語言了。
## 9.控制執行sonar runner進程
sonar runner和test進程一樣,也是一個單獨的進程。你可以設置該進程的內存以及系統屬性。想要查看都有哪些可以設置的屬性,可以在api中查看JavaForkOptions類。
~~~
sonarRunner {
forkOptions {
maxHeapSize = '512m'
}
}
~~~
- 前言
- gradle學習(1)-helloworld
- gradle學習(2)-基礎語法
- gradle學習(3)-基礎認識
- gradle學習(4)-構建java項目
- gradle學習(5)-創建eclipse項目
- gradle學習(6)-依賴管理
- gradle學習(7)-groovy
- gradle學習(8)-gradle的命令行
- gradle學習(9)-獲取build相關信息
- gradle學習(10)-gui
- gradle學習(11)-編寫構建腳本
- gradle學習(12)-groovy一些基礎語法
- gradle學習(13)-有的沒的
- gradle學習(14)-任務
- gradle學習(15)-任務
- gradle學習(16)-操作文件
- gradle學習(17)-被合并的ant
- gradle學習(18)-ant的屬性
- gradle學習(19)-log系統
- gradle學習(20)-詳解java插件
- gradle學習(21)-在eclipse中構建java項目
- gradle復習(1)-2種定義任務方式的區別
- gradle復習(2)-eclipse中添加依賴jar包
- gradle復習(3)-在gradle項目中使用TestNG
- gradle復習(4)-Cannot find System Java Compiler
- gradle復習(5)-Test remote debug
- gradle復習(6)-深入Jacoco
- gradle復習(7)-深入Jacoco
- gradle復習(8)-Task中行為
- gradle學習(22)-Sonar
- gradle學習(23)-Sonar runner