【问题标题】:Sonarqube: scan subproject instead of whole project with custom gradle taskSonarqube:使用自定义 gradle 任务扫描子项目而不是整个项目
【发布时间】:2020-06-04 17:28:10
【问题描述】:

我必须为一个 Java 项目运行 Sonarqube 分析,该项目是其他 4 个子项目中的一个,如下所示:

  Parent-project
    -> serviceA
       -> src/main/java/...
    -> serviceB
       -> src/main/java/...
    -> serviceC
       -> src/main/java/...
    -> serviceD
       -> src/main/java/...
  -> gradle.properties
  -> sonar.gradle

我知道我可以排除不需要的服务,如下所示:

project(":serviceB") {
        sonarqube {
            skipProject = true
        }
    }

但问题是我不拥有父项目,因此无法在全局 sonar.gradle 文件中进行更改,因为它也被其他服务共享。

有没有办法让 sonar.gradle 只用于我的项目 (serviceA),以及只为我的服务运行分析的 gradle 任务? 我在这里完全迷失了,因为文档似乎没有说明这一点。

任何帮助将不胜感激!

【问题讨论】:

  • 寻找相同的答案..
  • 嘿@AasthaJain,我刚刚发布了一个对我有用的解决方案。让我知道这是否有帮助。谢谢!

标签: java sonarqube sonarqube-scan sonar-runner sonarqube5.1


【解决方案1】:

我找到了解决这个问题的方法。您实际上可以使用 sonar.gradle 中的以下设置排除父项目下不需要的项目:

project(":project-1") {
    sonarqube {
        skipProject = true
    }
}
 
project(":project-2") {
    sonarqube {
        skipProject = true
    }
}

如果您想要对某个级别进行更多控制,而您不想排除整个子项目但只想包含子项目的一部分(例如,多个团队贡献的公共共享库,而您只想分析您团队的代码),您可以执行以下操作:

project(":common-project") {
    sonarqube {
        properties {
            property "sonar.inclusions", "src/main/java/**/common/**"
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-06
    • 2017-09-08
    • 2018-10-17
    • 2018-08-24
    • 2020-11-26
    • 2017-08-20
    • 2018-05-31
    • 2012-09-22
    相关资源
    最近更新 更多