51Testing软件测试论坛

标题: 多模块Gradle项目配置SonarQube [打印本页]

作者: 草帽路飞UU    时间: 2019-3-19 15:24
标题: 多模块Gradle项目配置SonarQube
1. 配置build.gradle
  1. buildscript{

  2.     repositories {
  3.         maven {url "https://plugins.gradle.org/m2/"}
  4.     }
  5.     dependencies {
  6.         classpath("org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6")
  7.     }

  8. }

  9. apply plugin: "org.sonarqube"

  10. sonarqube {
  11.     properties {
  12.         property "sonar.sourceEncoding", "UTF-8"
  13.     }
  14. }

  15. subprojects {

  16.     apply plugin: 'java'
  17.     apply plugin: 'eclipse'
  18.     apply plugin: 'idea'

  19.     sourceCompatibility = 1.8
  20.     targetCompatibility = 1.8

  21.     // 编码改为 UTF-8
  22.     [compileJava, compileTestJava, javadoc]*.options*.encoding = 'UTF-8'

  23.     repositories {
  24.         mavenCentral()
  25.         jcenter()
  26.     }

  27.     dependencies {
  28.         //maven仓库中心没有的jar,则放入libs目录下
  29.         compile fileTree(dir: 'libs', include: ['*.jar'])

  30.         // 通用依赖
  31.         compile("org.springframework:spring-aop:${springVersion}")

  32.         // 测试依赖
  33.         testCompile 'junit:junit:4.12'

  34.     }

  35.     sourceSets {
  36.         main {
  37.             java.srcDir('src/main/java')
  38.             resources.srcDir('src/main/resources')
  39.         }
  40.         test {
  41.             java.srcDir('src/test/java')
  42.             resources.srcDir('src/test/resources')
  43.         }
  44.     }

  45. }
复制代码

2. Build Sync

对引入的SonarQube进行可执行分析,可执行状态如下图所示:

[attach]123036[/attach]

若build.gradle配置有误,则执行结果如下图所示:

[attach]123037[/attach]

3. 多模块的SonarQube配置

    1. 共享配置设置

  1. subprojects {
  2.     sonarqube {
  3.         properties {
  4.             property "sonar.sources", "src"
  5.         }
  6.     }
  7. }
复制代码

共享配置设置可以在subprojects 中进行声明

    2.  个别模块配置

    个别模块的特殊配置声明在模块内部的build.gradle中,具体配置如下:

  1. project(":project1") {
  2.     sonarqube {
  3.         properties {
  4.             property "sonar.branch", "Foo"
  5.         }
  6.     }
  7. }
复制代码

3. 分析时跳过特定的模块

    多模块的项目中,如果想忽略某模块,即不分析某模块,可在特定模块内的build.gradle中进行如下配置:

  1. project(":project2") {
  2.     sonarqube {
  3.         skipProject = true
  4.     }
  5. }
复制代码

4. 执行SonarQube分析

    1. 执行命令

  1. gradle sonarqube --info
复制代码

    2. 执行结果


[attach]123038[/attach]


作者: Miss_love    时间: 2020-12-30 17:45
支持分享




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2