SonarQube - Android不适用于gradle 3.0.0

时间:2017-10-02 11:59:41

标签: android android-studio android-gradle sonarqube kotlin

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

4 个答案:

答案 0 :(得分:15)

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

原始回答

我进行了一些研究:

    你可以
  • here 找到SonarQube内部跟踪的问题

  • here你 可以找到SonarQube开发人员询问Google的问题 关于API的变化。正如Google工程师所述,此更改旨在实现,并且已存在替代API。 SonarQube表示他们不会支持Android插件3.0.0,直到最终版本或至少RC版本

结果:

  

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

更新 - 2017年11月6日

  

SonarQube发布了新版本2.6,它与AGP(Android Gradle Plugin)3.0.0完全兼容。

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"

发布页面HERE

中的更多信息

答案 1 :(得分:9)

您可以使用我的解决方案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'

答案 2 :(得分:2)

在sonarqube 2.6发布后,只更新插件对我来说已经足够了

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

答案 3 :(得分:-5)

尝试使用较低版本的gradle