繁体   English   中英

SonarQube - Android 不适用于 gradle 3.0.0

[英]SonarQube - Android not working for gradle 3.0.0

Android sonarqube 一直工作到我更新了 android studio。 现在它给出了一个错误

FAILURE: Build failed with an exception.

* What went wrong:
com.android.build.gradle.api.ApkVariant.getCompileLibraries()Ljava/util/Collection;

我认为这是因为 gradle 依赖语法在最新的 android 版本中从“编译”更改为“实现”,如下所示。

dependencies {
    compile ........
    compile ........
}

dependencies {
    implementation ........
    implementation ........
}

任何人都可以帮我为新的android版本配置sonarqube

阅读答案的最后一部分以获取最新更新

原答案

我进行了一些研究:

  • 在这里您可以找到 SonarQube 内部跟踪的问题

  • 在这里,您可以找到 SonarQube 开发人员向 Google 询问有关 API 更改的问题。 正如 Google 工程师所说,此更改是有意为之,并且已经存在替代 API。 SonarQube 表示在最终版本或至少 RC 版本之前他们不会支持 android 插件 3.0.0

结果:

为了继续工作,您必须使用当前稳定的 Android Studio 和 Android 插件 v2.XX 构建您的项目


更新 - 2017 年 11 月 6 日

SonarQube 发布了与 AGP(Android Gradle 插件)3.0.0 完全兼容的新版本 2.6。

buildscript {
    repositories {
        google()
        jcenter()

        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6.1"
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

apply plugin: "org.sonarqube"

发布页面中的更多信息在这里

您可以使用我的解决方案https://github.com/SonarSource/sonar-scanner-gradle/pull/33

buildscript {
    repositories {
        jcenter()
        google()
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "com.android.tools.build:gradle:3.0.0"
        classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6-rc1"
    }
}

apply plugin: 'org.sonarqube'

在 sonarqube 2.6 发布后,仅仅更新插件对我来说就足够了

plugins {
    id "org.sonarqube" version "2.6"
}

更新 Benoit 答案,官方声纳扫描仪 gradle 插件 (v2.6-rc1) 已经支持新的 gradle 语法。 因此,将您的根 gradle 脚本更新为:

buildscript {
    repositories {
        jcenter()
        google()
        maven {
            url "https://jitpack.io"
        }
    }
    dependencies {
        classpath "com.android.tools.build:gradle:3.0.0"
        classpath "com.github.SonarSource:sonar-scanner-gradle:2.6-rc1"
    }
}

apply plugin: 'org.sonarqube'

尝试使用低版本的 gradle

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM