Как получить свойства sonar-project из проекта на основе gradle - PullRequest
0 голосов
/ 09 мая 2018

текущее состояние

В настоящее время я работаю над Java-приложением, которое должно локально клонировать различные проекты, и сгенерировать файл sonar-project.properties для подготовки к анализу SonarQube.

Приложение может сделать это для проектов на основе maven, обнаружив файл "pom.xml" и получив необходимое свойство, например, «sonar.modules» из тега в этом файле и записывает их в файл sonar-project.properties этого проекта.

Вопрос

Теперь я должен расширить свою программу для анализа проектов, основанных на Gradle. Так как я никогда не работал с Gradle, мой вопрос, где я могу найти информацию, которая мне нужна для настройки файла sonar-project.properties, например, модули, sourceDirectory и т. д. правильно.

Это мой первый вопрос по SOF, поэтому, если вам нужна дополнительная информация, напишите комментарий.

Заранее спасибо.

1 Ответ

0 голосов
/ 09 мая 2018

Если вы полностью используете gradle для создания своего проекта, это будет легко и удобно. самая важная часть заключается в том, что вы внимательно изучите документацию и примеры плагина gradle - https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Gradle

Я добавлю короткий скрипт сборки Gradle, основанный на проекте start.spring.io с Gradle. Когда вы звоните gradle build sonarqube это будет

  • создайте приложение
  • запустите ваши тесты с покрытием, так как плагин jacoco также применяется
  • загрузить все на указанный сервер эхолота

пример:

buildscript {
    ext {
        springBootVersion = '2.0.1.RELEASE'
    }
    repositories {
        mavenCentral()
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6.2'
        classpath "org.ajoberstar:grgit:2.2.0"
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'jacoco'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'org.sonarqube'

group = 'net.gradle.testing'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
    mavenCentral()
}


dependencies {
    compile('org.springframework.boot:spring-boot-starter')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

sonarqube {
    properties {
        System.setProperty('sonar.host.url', 'host URL')
    }
}

Но, как уже говорилось, чтобы установить специальные свойства или как задать ключ и имя Proejct, лучше всего проверить документацию сканера: D

...