SonarQube – Android не работает для gradle 3.0.0

Android sonarqube работал до тех пор, пока я не обновил студию Android. Теперь он дает ошибку

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 ........ } 

Кто-нибудь может помочь мне настроить sonarqube для новой версии Android

    Прочтите последнюю часть ответа, чтобы получить последние обновления

    Оригинальный ответ

    Я провел несколько исследований:

    • здесь вы можете найти проблему, отслеживаемую внутренне SonarQube

    • здесь вы можете найти проблему, открытую разработчиком SonarQube, с запросом Google об изменении API. Как заявили инженеры Google, это изменение предназначено, и альтернативный API уже существует. SonarQube заявила, что они не будут поддерживать плагин Android 3.0.0 до окончательной версии или, по крайней мере, версии RC

    Результат:

    Чтобы продолжить работу, вы вынуждены строить свой проект с помощью текущей стабильной платформы Android Studio и Android v2.XX


    ОБНОВЛЕНИЕ – 6 ноября 2017 г.

    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.0' classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6" } } 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' 

    Обновляя ответ Benoit, официальный плагин-градир сонара (v2.6-rc1) уже поддерживает новый синтаксис градации. Итак, обновите сценарий корневого градиента до:

     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' 

    После выхода Sonarqube 2.6 просто обновление плагина было достаточно для меня

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

    Попробуйте использовать более низкую версию градиента

    Intereting Posts
    Как установить нижнюю границу для FAB в макете Anko DSL? Могу ли я использовать инъекцию кинжала 2 в Котлин? Универсальный расширяемый класс AND реализует интерфейс в Kotlin Переменная не обновляется после декларации lateinit, неспособная вернуться Общие понятия Котлина: несоответствие типов в параметре общей карты Миграция с Java 6 на Kotlin Свойства конструктора Котлина и вызов различных конструкторов суперкласса Невозможно использовать SQS от Lambda Исключение, возникшее при использовании @Service в Котлине Классы данных Kotlin содержат открытые функции Правильный способ получить свойства с конфигурацией Kotlin-script для Gradle Библиотека Kotlin 'classes.jar' имеет неподдерживаемый формат. Обновите библиотеку или плагин Kotlin: Эквивалент getClass () для KClass OkHttp MockWebServer не может принимать подключения в новом экземпляре Android только setStackFromEnd, только если RecycleView / List больше экрана