Не удалось найти метод sonarProperties () - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь настроить build.gradle для генерации и загрузки отчета о покрытии кода в сонар

import static org.apache.tools.ant.taskdefs.condition.Os.*

buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6.1"
  }
}

 plugins {
   id "org.sonarqube" version "2.6.1"
   id "java" 
 }

task sonarRunner {
        sonarProperties {
                property "sonar.host.url", sonar.host.url
                property "sonar.organization", sonar.organization
                property "sonar.projectKey", sonar.projectKey
                property "sonar.login", sonar.login
                property "sonar.jacoco.reportPath", sonar.jacoco.reportPath
        }
}

task generateReport {
        exec {
          commandLine 'ant', 'jacoccoalltests', '-Dtestclasses.extensions=' + code.coverage.extensions
      }

}

task checkOs() << {
    if (Os.isFamily(Os.FAMILY_WINDOWS)) {
        commandLine 'setantenv.bat'
    }
    if(Os.isFamily(Os.FAMILY_UNIX)) {
        exec {
          executable "./setantenv.sh"
        }
    }
    if(Os.isFamily(Os.FAMILY_MAC)) {
        exec {
          executable ". ./setantenv.sh"
        }
    }
}

sonarRunner.dependsOn generateReport
generateReport.dependsOn checkOs

Когда я запускаю . / Gradlew clean build У меня появляется следующая ошибка

Вызвано: org.gradle.internal.metaobject.AbstractDynamicObject $ CustomMessageMissingMethodException: не удалось найти метод sonarProperties () для аргументов [build_5g79eps6d8kumu5fvgq9l0s46 $ @ 'sr0705).gradle.api.DefaultTask

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 09 октября 2018

Для настройки плагина SonarQube необходимо использовать расширение Gradle с именем sonarqube, как описано здесь

sonarqube {
    properties {
        property "sonar.exclusions", "**/*Generated.java"
        property "sonar.host.url", sonar.host.url
        property "sonar.organization", sonar.organization
        property "sonar.projectKey", sonar.projectKey
        property "sonar.login", sonar.login
        property "sonar.jacoco.reportPath", sonar.jacoco.reportPath     
    }
}

Смотрите также README из этого репозитория плагина здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...