适用于 Android 的多模块项目的 SonarQube
Posted
技术标签:
【中文标题】适用于 Android 的多模块项目的 SonarQube【英文标题】:SonarQube for multi module project for Android 【发布时间】:2021-05-03 22:05:58 【问题描述】:我浏览过很多文章和帖子,但遗憾的是,我似乎没有一篇清楚。我想为我的 android 项目集成 sonarqube。我的项目结构如下:
最初,我按照此处提到的方式设置了一个 sonarqube.gradle:What is the correct way to configure an Android project with submodules for use with the sonarqube gradle plugin?
但它为我做的是用它处理的最后一个模块覆盖数据。这意味着我在 sonarqube 登录中仅看到域的代码行。如果我不添加 apply from: '../sonarqube.gradle' 在域中然后我可以看到数据库的代码。如果我没有在数据库和域中添加 apply from: '../sonarqube.gradle' ,那么我会看到它的数据。所以我认为它会覆盖日志。
谁能帮我理解在 Android 中为多模块项目设置 sonarqube 的正确方法是什么?
apply plugin: "org.sonarqube"
sonarqube
properties
property "sonar.projectName", "my-app"
property "sonar.projectKey", "my-app"
property "sonar.host.url", "URL"
property "sonar.sources", "./src/main/"
property "sonar.sourceEncoding", "UTF-8"
property "sonar.language", "kotlin"
property "sonar.login", "token"
property "sonar.projectVersion", "1.0"
property "sonar.analysis.mode", "publish"
property "sonar.android.lint.report", "./build/outputs/lint-results-debug.xml"
property "sonar.exclusions", "**/BuildConfig.class,**/R.java,**/R\$*.java,src/main/gen/**/*,src/main/assets/**/*"
【问题讨论】:
【参考方案1】:移除 projectKey 属性并仅在根 build.gradle 中声明它:
apply plugin: "org.sonarqube"
sonarqube
properties
property "sonar.projectName", "my-app"
property "sonar.host.url", "URL"
property "sonar.sources", "./src/main/"
property "sonar.sourceEncoding", "UTF-8"
property "sonar.language", "kotlin"
property "sonar.login", "token"
property "sonar.projectVersion", "1.0"
property "sonar.analysis.mode", "publish"
property "sonar.android.lint.report", "./build/outputs/lint-results-debug.xml"
property "sonar.exclusions", "**/BuildConfig.class,**/R.java,**/R\$*.java,src/main/gen/**/*,src/main/assets/**/*"
【讨论】:
以上是关于适用于 Android 的多模块项目的 SonarQube的主要内容,如果未能解决你的问题,请参考以下文章
sonar-maven-plugin:如何在包含模式中使用项目相对路径?