草帽路飞UU 发表于 2019-3-19 15:24:08

多模块Gradle项目配置SonarQube

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


Miss_love 发表于 2020-12-30 17:45:49

支持分享
页: [1]
查看完整版本: 多模块Gradle项目配置SonarQube