1. 配置build.gradle
buildscript{
repositories {
maven {url "https://plugins.gradle.org/m2/"}
}
dependencies {
classpath("org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6")
}
}
apply plugin: "org.sonarqube"
sonarqube {
properties {
property "sonar.sourceEncoding", "UTF-8"
}
}
subprojects {
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
sourceCompatibility = 1.8
targetCompatibility = 1.8
// 編碼改爲 UTF-8
[compileJava, compileTestJava, javadoc]*.options*.encoding = 'UTF-8'
repositories {
mavenCentral()
jcenter()
}
dependencies {
//maven倉庫中心沒有的jar,則放入libs目錄下
compile fileTree(dir: 'libs', include: ['*.jar'])
// 通用依賴
compile("org.springframework:spring-aop:${springVersion}")
// 測試依賴
testCompile 'junit:junit:4.12'
}
sourceSets {
main {
java.srcDir('src/main/java')
resources.srcDir('src/main/resources')
}
test {
java.srcDir('src/test/java')
resources.srcDir('src/test/resources')
}
}
}
2. Build Sync
對引入的SonarQube進行可執行分析,可執行狀態如下圖所示:
若build.gradle配置有誤,則執行結果如下圖所示:
3. 多模塊的SonarQube配置
1. 共享配置設置
subprojects {
sonarqube {
properties {
property "sonar.sources", "src"
}
}
}
共享配置設置可以在subprojects 中進行聲明
2. 個別模塊配置
個別模塊的特殊配置聲明在模塊內部的build.gradle中,具體配置如下:
project(":project1") {
sonarqube {
properties {
property "sonar.branch", "Foo"
}
}
}
3. 分析時跳過特定的模塊
多模塊的項目中,如果想忽略某模塊,即不分析某模塊,可在特定模塊內的build.gradle中進行如下配置:
project(":project2") {
sonarqube {
skipProject = true
}
}
4. 執行SonarQube分析
1. 執行命令
gradle sonarqube --info
2. 執行結果