Проверка качества кода Java с помощью Gradle

Java gradle

Maven --> Gradle

Сначала установите градиент: Установка Mac

brew install gradle 

Установка Ubuntu

apt install gradle

Переключите проект Maven на проект Gradle и запустите его в корневом каталоге Maven:

gradle init --type pom

После успешного запуска выполните командуgradle build, удалите pom.xml после успеха.

Анализ модульных тестов с помощью jacoco

jacocoЭто инструмент для анализа покрытия юнит-тестами, который после запуска юнит-тестов может показать, какие части кода юнит-тестированы, а какие не покрыты юнит-тестами, а также дать покрытие юнит-тестами всего проекта. . существуетbuild.gradleДобавьте плагин jacoco в

apply plugin: 'jacoco'

Выполнить команду для анализа модульного теста

gradle jacocoTestReport

Или вы можете перейти в меню инструментов Gradle.Tasks -> other -> jacocoTsestReportАнализ юнит-тестов можно запускать напрямую.

jacocoTestReport
Вы можете увидеть это в каталоге сборки проектаjacocoкаталог иreports/test/htmlкаталог, последние в основном представляют собой отчеты, созданные jacoco.
jacoco报告

Проверка качества кода с помощью SonarQube

SonarQubeЭто система управления качеством кода с открытым исходным кодом, которая поддерживает более 25 языков программирования, предоставляет дублированный код, стандарты кодирования, модульные тесты, покрытие модульными тестами, сложность кода, потенциальные ошибки, комментарии и отчеты о разработке программного обеспечения. Чтобы использовать SonarQube в gradle, вам сначала нужно добавить зависимости, добавьте в скрипт компиляции:

buildscript {
    repositories {
        maven { url "https://plugins.gradle.org/m2/" }
    }
    dependencies {
        classpath("org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6-rc1")
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE")
    }
}

Добавить плагин:

apply plugin: "org.sonarqube"

Настройте SonarQube:

sonarqube {
    properties {
        property "sonar.sourceEncoding", "UTF-8"
        property "sonar.host.url", "https://sonarcloud.io"
        property "sonar.jdbc.url", "jdbc:mysql://my.server.com/sonar"
        property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver"
        property "sonar.login", "test"
        property "sonar.password", "test"

    }
}

Или просто используйте токен для загрузки результатов анализа:

property "sonar.login", "token"

Сам SonarQube не предоставляет инструмент для покрытия юнит-тестами. Вам необходимо добавить конфигурацию, связанную с jacoco, в SonarQube после использования результатов анализа jacoco.


sonarqube {
    properties {

        property "sonar.jacoco.reportPath", "$rootDir/build/jacoco/test.exec"
        property "sonar.jacoco.itReportPath", "$rootDir/build/jacoco/acceptanceTest.exec"
        property "sonar.jacoco.excludes", "*/st/*"

        property "sonar.sourceEncoding", "UTF-8"
        property "sonar.host.url", "https://sonarcloud.io"
        property "sonar.jdbc.url", "jdbc:mysql://my.server.com/sonar"
        property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver"
        property "sonar.login", "test"
        property "sonar.password", "test"

    }
}

Команда выполненияgradle sonarqubeВы можете проанализировать код и загрузить результаты анализа.Поскольку анализ SonarQube основан на анализе модульных тестов jacoco, вам необходимо сначала запустить команду.gradle jacocoTestReport. Последняя комбинированная команда, которую необходимо выполнить:

gradle jacocoTestReport
gradle sonarqube