Как добавить плагин 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 is Up) в командной строке,
Любая идея относительно того, как генерировать отчеты моего текущего проекта с помощью sonarqube и выполнения команды в командной строке cmd?
Ошибка № 33: только блоки сценариев 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 выглядит в моем браузере,
Пытался создать файл Gradle.properties, чтобы добавить эти строки,
systemProp.sonar.host.url=http://localhost:9000
systemProp.sonar.login=admin
systemProp.sonar.password=admin
Открыл Android Studio Terminal и выполнил это.\ Gradlew sonarqube
Пожалуйста, смотрите ниже изображение, я получаю исключение Sonar Qube, когда я пытался выполнить команду на Android Studio Terminal (внизу).
1 ответ
Ошибка № 33 возникает из-за строгого синтаксиса, который должен соблюдаться при использовании блока plugins{}, который описан в документации Gradle здесь: https://docs.gradle.org/current/dsl/org.gradle.plugin.use.PluginDependenciesSpec.html (см. раздел "Строгий синтаксис"). В своем скрипте build.gradle вы добавили блок "plugins{}" после некоторых других директив, что недопустимо. Я думаю, что другая ошибка № 25 происходит по той же причине.
Вы должны попытаться переписать ваш скрипт и переместить сначала блок 'buildscript', затем блок 'plugins', а затем другие части ваших скриптов.
надеюсь это поможет.
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