gpt4 book ai didi

java - 如何从基于 gradle 的项目中检索 Sonar 项目属性

转载 作者:行者123 更新时间:2023-12-03 05:45:40 40 4
gpt4 key购买 nike

当前状态

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

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

问题

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

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

提前致谢。

最佳答案

如果您完全使用 gradle 来构建您的项目,这将很容易实现。最重要的部分是您仔细查看 gradle 插件文档和示例 - https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Gradle

我将在此处添加一个简短的 gradle 构建脚本,该脚本基于带有 gradle 的 start.spring.io 项目。当您调用 gradle build sonarqube这会

  • 构建您的应用程序
  • 运行你的测试,同时覆盖 jacoco 插件
  • 将所有内容上传到指定的 Sonar 服务器

  • 例子:
    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

    关于java - 如何从基于 gradle 的项目中检索 Sonar 项目属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50249820/

    40 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com