Создание отчета HTML Checkstyle с помощью Gradle

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

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

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

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

но это дало

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

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

Есть ли способ создавать отчеты Checkstyle HTML с помощью Gradle?

Спасибо.


person Matthias Braun    schedule 03.12.2013    source источник


Ответы (4)


Вот как я это делаю в своем небольшом проекте:

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
person JB Nizet    schedule 03.12.2013
comment
Спасибо, этот HTML отлично выглядит. Я нашел файл XSL здесь . - person Matthias Braun; 04.12.2013
comment
Я хотел добавить, что ваше утверждение о SonarQube определенно верно. Сейчас я использую ансамбль Jenkins, Gradle и SonarQube, где Gradle вызывает SonarQube. Я разместил части этой конфигурации здесь если кто-то планирует иметь аналогичную настройку сборки. - person Matthias Braun; 02.03.2014
comment
К сожалению, это не работает - по крайней мере, с последней версией Gradle - если проверки стиля проверки не работают. :-( - person John Szakmeister; 25.12.2014
comment
@jszakmeister Да, я тоже это заметил. Я доработал его, чтобы он работал даже при наличии нарушений. Проверьте правку. В случае, если редактирование отменяется по какой-либо причине, уловка состоит в том, чтобы просто определить код OP как отдельную задачу (например, 'checkstyleHtml'), а затем добавить checkstyleMain.finalizedBy checkstyleHtml. Вам нужно будет изменить код OP с reports.xml... на checkstyleMain.reports.xml.... - person Tagc; 10.03.2015

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

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 - это файл с модулями стиля проверки, которые вы хотите использовать, а html.destination - это место, где вы хотите, чтобы ваш html-отчет был сгенерирован.

person The Vanaras    schedule 28.01.2016

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

tasks.withType(Checkstyle) {
  reports {
    html.enabled = true
  }
}
person Jingguo Yao    schedule 04.02.2016

Вот плагин, который упростит настройку стиля проверки. Он автоматически настраивает всю необходимую конфигурацию для стиля проверки в соответствии с вашими предпочтениями и в конце генерирует отчет в формате HTML.

Все, что вам нужно сделать, это добавить несколько строк в свой build.gradle и все. Нет необходимости создавать отдельные файлы xml.

Плагин называется estilo. Вы можете найти более подробную информацию о том, как его использовать здесь - https://github.com/anshulverma/gradle-estilo-plugin

person nuaavee    schedule 09.02.2018