在 SonarQube 中配置 gradle 项目

Posted

技术标签:

【中文标题】在 SonarQube 中配置 gradle 项目【英文标题】:Configure gradle projects in SonarQube 【发布时间】:2018-08-05 04:49:28 【问题描述】:

我正在使用 Liferay DXP,我想将 SonarQube 集成到我的工作区中,我正在使用 gradle。

我的工作空间叫做:test-workpace

我的 gradle.properies 文件(路径:test-workspace/gradle.properties)是:

systemProp.sonar.host.url=http://localhost:9000
systemProp.sonar.sourceEncoding=UTF-8
systemProp.sonar.forceAuthentication=true
systemProp.sonar.login=<mytoken>

# Definición de variables para el proyecto.
description = 'Gradle - Sample Project'
group = 'com.test.sonarqube.gradle'
version = '1.0.0'

我的 build.gradle 文件(路径:test-workspace/build.gradle)是:

buildscript 
        repositories 
                mavenLocal()
                jcenter()
                maven 
                        url "https://plugins.gradle.org/m2/"
                
        
        dependencies 
                classpath group: "org.sonarsource.scanner.gradle", name:"sonarqube-gradle-plugin", version:"2.5"
        


group = 'com.test.sonarqube.gradle'
apply plugin: "org.sonarqube"

当我执行“gradle sonarqube”时,所有工作空间都会被扫描,但我想像 SonarQube 中的项目一样配置每个模块。

有人知道如何配置 gradle 文件来做到这一点吗?

非常感谢!

【问题讨论】:

meta.stackexchange.com/questions/141823/… 【参考方案1】:

正如 Olaf 指出的:这个问题也被发布到https://web.liferay.com/community/forums/-/message_boards/message/104477676

您可以在 build.gradle 中使用以下内容将所有子项目配置为不同的 SonarQube 项目:

subprojects
  sonarqube 
      properties 
          property 'sonar.projectName', "$-> project.name"
      
  

您还可以设置属性sonar.projectKey 或https://docs.sonarqube.org/display/SONAR/Analysis+Parameters 中的任何其他属性

懒惰评估项目名称的想法来自:How can I make Gradle extensions lazily evaluate properties that are set dynamically by tasks?

【讨论】:

以上是关于在 SonarQube 中配置 gradle 项目的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 中Gradle配置sonarqube

使用sonarqube gradle插件配置带有子模块的Android项目的正确方法是啥?

Sonarqube:使用自定义 gradle 任务扫描子项目而不是整个项目

gradle、sonarqube 和 jacoco 插件的哪些版本兼容

Sonarqube 对 Spring Boot gradle 项目的覆盖率为 0%

从 gradle 向配置了 cobertura 的 sonarqube 报告覆盖率