0

当前状态

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

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

问题

现在我应该扩展我的程序来分析基于 Gradle 的项目。由于我从未使用过 Gradle,我的问题是在哪里可以找到正确配置 sonar-project.properties 文件(例如模块、sourceDirectory 等)所需的信息。

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

提前致谢。

4

1 回答 1

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

于 2018-05-09T10:21:16.983 回答