Как добавить плагин SonarQube в Build.Gradle и получать отчеты по текущему проекту

Я попытался загрузить SonarQube и выполнил все шаги по этой ссылке, Настройка SonarQube и добавление подключаемых модулей SonarQube в build.gradle

Удалось выполнить SonarQube из Command, но пока я добавляю плагины SonarCube в Build.Gradle, появляется такая ошибка, когда я пытаюсь синхронизировать проект,

Ошибка № 25: все блоки buildscript {} должны стоять перед любыми блоками plugins {} в скрипте

Но я добавил плагин и свойства SonarQube в build.gradle,

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

и добавление свойств SonarQube,

sonarqube {
properties {
    property "sonar.projectName", "MyApplication2"
    property "sonar.projectKey", "SQKey"
    property "sonar.sources","src/main/java"
    property "sonar.language","java"
    property "sonar.sourceEncoding", "UTF-8"
}}

Версия Android Studio — 3.1.3, а версия Gradle — 4.4, а загруженная версия SonarQube — 7.2.1.

Мой вопрос: SonarQube 7.2.1 не совместим с Gradle версии 4.4?

См. изображение ниже (SonarQube включен) в командной строке, SonarQube в командной строке

Любая идея относительно того, как генерировать отчеты о моем текущем проекте с помощью sonarqube и выполнения команды в командной строке cmd?

Ошибка № 33: до блоков plugins {} допускаются только buildscript {} и другие блоки скриптов plugins {}, никакие другие операторы не допускаются

Пожалуйста, найдите ниже файл build.gradle,

 buildscript {
repositories {
    jcenter()
    maven { url 'https://maven.fabric.io/public' }
    maven {
        url 'https://maven.google.com/'
        name 'Google'
    }
    google()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.1.3'
    classpath 'com.google.gms:google-services:2.1.0'
    classpath 'io.fabric.tools:gradle:1.+'
    classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: "org.sonarqube"



repositories {
maven { url 'https://maven.fabric.io/public' }
}


apply plugin: 'com.google.gms.google-services'

plugins {
id "org.sonarqube" version "7.2.1"
}
sonarqube{
properties{
    property "sonar.projectName", "Example 16-8"
    property "sonar.projectKey", "example 16-6-key"
    property "sonar.sources","src/com.example.project"
    property "sonar.language","java"
    property "sonar.sourceEncoding", "UTF-8"
    property "sonar.jacoco.reportPath", 
    "build/jacoco/testDebugUnitTest.exec"
    //        property "sonar.exclusions", "src/main/java/com/foo/Foo.java"
    }}
    allprojects {
    repositories {
    jcenter()
    google()
    }
    }
    android {
    compileSdkVersion 27
    buildToolsVersion '27.0.3'
    }

Какую ошибку я делаю здесь в приведенном выше файле build.gradle и как запустить sonarQube и создать отчеты моего текущего проекта?

И, пожалуйста, найдите изображение ниже. Когда я добавляю http://localhost:9000/ в свой браузер, он не показывать ни один из моих проектов Android. Пожалуйста, обратитесь к этому изображению для справки, как SonarQube выглядит в моем браузере,

Когда я добавляю http://localhost:9000/ в свой браузер, он не показывает ни один из моих проектов Android. Пожалуйста, посмотрите на это изображение, как sonarqube выглядит в моем браузере,

Пытался создать файл Gradle.properties, чтобы добавить эти строки,

systemProp.sonar.host.url=http://localhost:9000
systemProp.sonar.login=admin
systemProp.sonar.password=admin

Открыл терминал Android Studio и выполнил это, .\gradlew sonarqube

Пожалуйста, см. изображение ниже. Я получаю исключение Sonar Qube, когда пытаюсь выполнить команду на терминале Android Studio (внизу).

Я получаю исключение Sonar Qube Exception при попытке выполнить команду в Терминале.


person Achiever    schedule 13.08.2018    source источник
comment
Не могли бы вы рассказать немного больше о вашем build.gradle ?   -  person ToYonos    schedule 13.08.2018
comment
@ToYonos - Любые предложения, пожалуйста?   -  person Achiever    schedule 13.08.2018
comment
Блок buildscript должен быть первым в верхней части файла.   -  person ToYonos    schedule 13.08.2018
comment
@ToYonos - попытался поместить блок buildscript в верхнюю часть файла build.gradle. Но все же я не могу анализировать или генерировать отчет об ошибках с помощью SonarQube. Пожалуйста, любое предложение или помощь?   -  person Achiever    schedule 17.08.2018
comment
@Achiever: ваш скрипт действителен после того, как вы переместили блок buildscript вверху (может ли Gradle его проанализировать)? или у вас есть какие-то оставшиеся ошибки при попытке выполнить некоторые задачи?   -  person M.Ricciuti    schedule 20.08.2018


Ответы (2)


Ошибка № 33 возникает из-за строгого синтаксиса, которого необходимо придерживаться при использовании блока plugins{}, который описан в документации Gradle здесь: https://docs.gradle.org/current/dsl/org.gradle.plugin.use.PluginDependenciesSpec.html (см. " Строгий синтаксис") В скрипте build.gradle вы добавили блок "plugins{}" после некоторых других директив, что недопустимо. Я предполагаю, что другая ошибка № 25 происходит по той же причине.

Вы должны попытаться переписать свой сценарий и сначала переместить блок «скрипт сборки», затем блок «плагины», а затем другие части ваших скриптов.

надеюсь это поможет.

person M.Ricciuti    schedule 13.08.2018

sonarqube {
    properties {
    property "sonar.host.url", "https://sonar-url"
    property "sonar.login", "login - token "

    property "sonar.projectName", "hello-world-service"
    property "sonar.projectKey", "hello-world-service"

    property "sonar.coverage.jacoco.xmlReportPaths", "$buildDir/reports/jacoco/test/jacocoTestReport.xml"
    property "sonar.junit.reportPaths", "$buildDir/test-results/test/"
    property "sonar.exclusions", "**/xmldefs/**,**/spec/api.json"
    property "sonar.cpd.exclusions", ", **/persistence/entity/**"
    property "sonar.dynamicAnalysis", "reuseReports"
    property "sonar.clover.reportPaths", "**/build/clover/clover.xml"
    property "sonar.java.coveragePlugin", "clover"
    property "sonar.sources", "src/main/kotlin"
    property "sonar.tests", "."
    property "sonar.test.inclusions", "**/*Test*/**"
    }
  }

// Build should fail if coverage less than minimum.
jacocoTestCoverageVerification.dependsOn jacocoTestReport
build.finalizedBy jacocoTestCoverageVerification

// Добавьте это в свой build.gradle

person Prutha Nagrikar    schedule 29.01.2020