Подтвердить что ты не робот

Создайте отчет HTML-таблицы Checkstyle с помощью Gradle

Я хочу получить результат работы Checkstyle через Gradle как отчет HTML.

Я ничего не нашел в документации Checkstyle plugin.

Я добавил следующее в мой файл build.gradle.

checkstyleTask {
    reports {
        html {
            destination "build/reports/checkstyle.html"
        }
    }
}

но это дало

Что пошло не так: возникла проблема с оценкой корневого проекта MyProject.

Не удалось найти метод checkstyleTask() для аргументов [build_1vu33nc0ekgtoo19jt e86o8o42 $_run_closure8 @1d8ee20] для root   проект "MyProject".

Есть ли способ генерировать HTML-отчеты Checkstyle с помощью Gradle?

Спасибо.

4b9b3361

Ответ 1

Вот как я делаю это в моем проекте smal:

checkstyleMain << {
    ant.xslt(in: reports.xml.destination,
             style: new File('config/checkstyle-noframes-sorted.xsl'),
             out: new File(reports.xml.destination.parent, 'main.html'))
}

Это требует, чтобы вы сохранили файл checkstyle-noframes-sorted.xsl из каталога contrib в бинарном дистрибутиве checkyle в каталоге config вашего проекта.

Если вы можете позволить себе работать с сервером SonarQube, использование плагина сонара приводит к гораздо лучшему пользовательскому опыту.

РЕДАКТОР: Вышеуказанное не будет работать, если есть нарушения. Это должно во всех случаях:

task checkstyleHtml << {
    ant.xslt(in: checkstyleMain.reports.xml.destination,
             style: file('/config/checkstyle-noframes-sorted.xsl'),
             out: new File(checkstyleMain.reports.xml.destination.parent, 'main.html'))
}

checkstyleMain.finalizedBy checkstyleHtml

Ответ 2

Похоже, я опаздываю на вечеринку. Но все же публикация этого мышления может помочь кому-то другому с той же проблемой.

Gradle 2.10 поддерживает генерацию отчета файла html. Просто убедитесь, что версия настроена правильно в вашем файле gradle-wrapper.properties.

После этого в вашем файле build.gradle вы должны иметь такую ​​конфигурацию, как ниже.

apply plugin: 'checkstyle'

checkstyle {
    toolVersion = '6.4.1'
    sourceSets = [sourceSets.main]
    configFile = rootProject.file("config/checkstyle/checkstyle.xml");
    showViolations = true
    ignoreFailures = true
}

checkstyleTest {
    enabled = false
}

tasks.withType(Checkstyle) {
  reports {
    html.destination rootProject.file("build/reports/checkstyle.html")
  }
}

Здесь config file - это файл, в котором есть модули checkstyle, которые вы хотите использовать, и html.destination - это местоположение, в котором вы хотите создать отчет html.

Ответ 3

Для Gradle 2.10 добавьте следующий код в build.gradle:

tasks.withType(Checkstyle) {
  reports {
    html.enabled = true
  }
}