Sonarqube 针对特定产品风格和构建类型运行(gradle 插件)

mal*_*sur 7 android sonarqube gradle-plugin

目前,我们在针对特定构建变体运行 sonarqube 时遇到问题。例如clienttestDebug

我们的结构是这样的。我们有 3 种不同的构建类型

  • 发布
  • 调试
  • 轮廓

并拥有多种(超过30种)产品口味。例如

 productFlavors {
        dev {

        }

        demo {

        }

        clienttest {

        }
        ...
     }
Run Code Online (Sandbox Code Playgroud)

所以我们不想运行声纳来运行所有变体。通常有一种方法记录如下

sonarqube {
    androidVariant 'clienttestDebug'
}
Run Code Online (Sandbox Code Playgroud)

然而,上面的代码并没有按预期工作,并尝试运行所有变体。是否有什么东西缺失了。我们使用 sonarqube 插件版本 2.7

Eli*_*yas 6

我发现这个问题是由于从 root build.grade 添加了插件造成的。

要了解有关 gradle 插件的更多信息,您可以阅读:https://docs.gradle.org/current/userguide/plugins.html#sec:old_plugin_application

另外,要了解如何将 sonarqube 添加到多模块项目: https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-gradle/

您必须在根 build.gradle 中添加该插件,如下所示;

plugins {
  id "org.sonarqube" version "2.8"
}
subprojects {
    apply plugin: 'org.sonarqube'
    sonarqube {
        androidVariant "clienttestDebug"
    }
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。

  • 最新的 sonarqube gradle api 现在是 `sonar { androidVariant "clienttestDebug" }` (2认同)