声纳多模块 Gradle Android 忽略 projectBaseDir

Posted

技术标签:

【中文标题】声纳多模块 Gradle Android 忽略 projectBaseDir【英文标题】:Sonar multi module Gradle Android ignore projectBaseDir 【发布时间】:2018-07-04 00:43:17 【问题描述】:

Sonar 的配置有问题,我正在尝试为以下项目配置多模块:

Project:
    app
    lib
        android_core_ui
            nspcoreui
        nspi 

所以我有 3 个模块要分析:app、nspcoreui 和 nspi。 我正在尝试以下命令

#!/usr/bin/env bash
./gradlew sonarqube -Dsonar.sourceEncoding="UTF-8" \
-Dsonar.projectVersion="3.10.0-APR-TEST.24-SNAPSHOT" \
-Dsonar.jacoco.reportPaths="app/build/jacoco/testStgDebugUnitTest.exec" \
-Dsonar.host.url="http://localhost:9000" \
-Dsonar.login="API_KEY" \
-Dsonar.projectKey="android_shop" \
-Dsonar.projectName="Android Shop" \
-Dsonar.projectBaseDir="." \
-Dsonar.modules.enabled="true" \
-Dsonar.modules="app,nspi,nspcoreui" \
-Dapp.sonar.projectKey="android_shop_app" \
-Dapp.sonar.projectName="Android Shop App" \
-Dapp.sonar.projectBaseDir="app" \
-Dapp.sonar.sources="src/main" \
-Dapp.sonar.tests="src/main/java,app/src/main/res" \
-Dnspcoreui.sonar.projectBaseDir="lib/android_core_ui/nspcoreui" \
-Dnspcoreui.sonar.projectName="Android Core UI" \
-Dnspcoreui.sonar.projectKey="android_nspcoreui" \
-Dnspcoreui.sonar.tests="src/test/java" \
-Dnspcoreui.sonar.sources="src/main/java,src/main/res" \
-Dnspi.sonar.projectBaseDir="lib/nspi" \
-Dnspi.sonar.projectName="Android NSPI" \
-Dnspi.sonar.projectKey="android_nspi" \
-Dnspi.sonar.tests="src/test/java" \
-Dnspi.sonar.sources="src/main/java,src/main/res";

我的问题是所有-Dnspcoreui.sonar.projectBaseDirDnspi.sonar.projectBaseDir 都被完全忽略,Project/nspcoreui doesn't exist 分析失败

正确的路径是Project/lib/android_shop_ui/nspcoreuiProject/lib/nspi

我正在使用声纳classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6.1'apply plugin: 'org.sonarqube' 在三个模块下。

知道为什么声纳会忽略我的参数吗?

【问题讨论】:

【参考方案1】:

如文档中所述,您必须在根项目中应用 sonarqube 插件,而不是在您拥有的每个子项目中。 在根 build.gradle 文件中:

apply plugin: "org.sonarqube"

并且不要申请子项目。

那么配置会简单很多,因为模块会自动发现

【讨论】:

你能检查一下吗? ***.com/questions/65963755/…

以上是关于声纳多模块 Gradle Android 忽略 projectBaseDir的主要内容,如果未能解决你的问题,请参考以下文章

maven多模块项目中的模块级声纳分析

Android知识要点整理(20)----Gradle 之多模块管理

Android知识要点整理(20)----Gradle 之多模块管理

将coverage.ec文件上传到声纳Android

即使没有任何更改,Android 多模块 Gradle 构建也很慢

Android gradle 动态添加模块依赖