Sonarqube:使用自定义 gradle 任务扫描子项目而不是整个项目
Posted
技术标签:
【中文标题】Sonarqube:使用自定义 gradle 任务扫描子项目而不是整个项目【英文标题】:Sonarqube: scan subproject instead of whole project with custom gradle task 【发布时间】: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,我刚刚发布了一个对我有用的解决方案。让我知道这是否有帮助。谢谢! 【参考方案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/**"
【讨论】:
以上是关于Sonarqube:使用自定义 gradle 任务扫描子项目而不是整个项目的主要内容,如果未能解决你的问题,请参考以下文章
使用android productFlavors时,sonarqube gradle插件异常
Android Gradle 插件自定义 Gradle 任务 ⑪ ( Gradle 任务分组 | 为自定义 Gradle 任务指定分组 | 为自定义 Gradle任务指定任务描述 | 代码示例 )
Android Gradle 插件自定义 Gradle 任务 ⑤ ( 为自定义 Gradle 任务添加依赖任务 | Gradle 任务依赖执行顺序控制 )
Android Gradle 插件自定义 Gradle 任务 ⑤ ( 为自定义 Gradle 任务添加依赖任务 | Gradle 任务依赖执行顺序控制 )
Android Gradle 插件自定义 Gradle 任务 ⑮ ( Gradle 自带 Zip 任务使用 | Zip 任务简介 | 代码示例 )