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. 执行结果