如何从基于gradle的项目中检索声纳项目属性

时间:2018-05-09 09:23:01

标签: java gradle sonarqube sonarqube7

当前状态

我目前正在研究一个本地克隆不同项目的java应用程序,并生成sonar-project.properties文件以准备SonarQube分析。

应用程序可以通过检测“pom.xml”文件并获取所需的属性来为基于maven的项目执行此操作。来自该文件中标记的“sonar.modules”,并将它们写入该项目的sonar-project.properties文件中。

问题

现在我应该扩展我的程序来分析基于Gradle的项目。由于我从未使用过Gradle,因此我可以在哪里找到我需要的信息,以便配置sonar-project.properties文件,例如modules,sourceDirectory等正确。

这是我的第一个SOF问题,如果您需要任何其他信息,请发表评论。

先谢谢。

1 个答案:

答案 0 :(得分:0)

如果您完全使用gradle来构建项目,那么这将非常简单,方便实现。最重要的是,您仔细查看了gradle插件文档和示例 - https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Gradle

我将在这里添加一个简短的gradle构建脚本,基于带有gradle的start.spring.io项目。当你致电gradle build sonarqube时,这将

  • 构建您的应用程序
  • 运行您的测试,覆盖范围也适用于jacoco插件
  • 将所有内容上传到指定的声纳服务器

示例:

buildscript {
    ext {
        springBootVersion = '2.0.1.RELEASE'
    }
    repositories {
        mavenCentral()
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6.2'
        classpath "org.ajoberstar:grgit:2.2.0"
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'jacoco'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'org.sonarqube'

group = 'net.gradle.testing'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
    mavenCentral()
}


dependencies {
    compile('org.springframework.boot:spring-boot-starter')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

sonarqube {
    properties {
        System.setProperty('sonar.host.url', 'host URL')
    }
}

但如前所述,要设置特殊属性,或者如何设置Proejct键和名称,最好检查扫描仪的文档:D