使用Gradle生成Checkstyle HTML报告

使用Gradle生成Checkstyle HTML报告,gradle,checkstyle,build.gradle,Gradle,Checkstyle,Build.gradle,我希望通过Gradle以HTML报告的形式获得运行Checkstyle的输出 我在这本书里什么也没找到 我已将以下内容添加到我的build.gradle文件中 checkstyleTask{ 报告{ html{ 目标“build/reports/checkstyle.html” } } } 但这产生了影响 错误:评估根项目“MyProject”时出现问题 找不到参数[build_1vu33nc0ekgtoo19jt e86o8o42$\u run]的方法checkstyleTask()_clo

我希望通过Gradle以HTML报告的形式获得运行Checkstyle的输出

我在这本书里什么也没找到

我已将以下内容添加到我的
build.gradle
文件中

checkstyleTask{
报告{
html{
目标“build/reports/checkstyle.html”
}
}
}
但这产生了影响

错误:评估根项目“MyProject”时出现问题

找不到参数[build_1vu33nc0ekgtoo19jt e86o8o42$\u run]的方法checkstyleTask()_closure8@1d8ee20]根 项目“MyProject”

有没有一种方法可以使用Gradle生成Checkstyle HTML报告


谢谢。

以下是我在一个小项目中的做法:

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

看来我来晚了。但仍在发布这篇文章,认为它可能会帮助其他人解决同样的问题

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")
  }
}

这里的
配置文件
是包含要使用的checkstyle模块的文件,
html。destination
是生成html报告的位置。

对于Gradle 2.10,将以下代码添加到
build.Gradle

tasks.withType(Checkstyle) {
  reports {
    html.enabled = true
  }
}
是一个插件,可以轻松设置checkstyle。它会根据您的喜好自动设置checkstyle所需的所有配置,并最终生成HTML报告

您只需在build.gradle中添加几行代码即可。不需要创建单独的xml文件


该插件名为estilo。您可以在这里找到有关如何使用它的更多详细信息--

谢谢,HTML看起来很棒。我找到了XSL文件。我想补充一点,您关于SonarQube的陈述绝对正确。我用的是詹金斯、格雷德尔和索那库贝的合奏,格雷德尔称之为索那库贝。如果有人计划使用类似的构建设置,我会发布此配置的部分内容。不幸的是,如果checkstyle检查失败,这似乎不起作用——至少对于最新的Gradle是如此-(@jszakmeister是的,我刚才也注意到了。我对它进行了修改,这样即使有违规行为,它也能正常工作。检查编辑。如果出于任何原因取消了编辑,诀窍就是将OP的代码定义为单独的任务(例如“checkstyleHtml”),然后添加
checkstyleMain.finalizedBy checkstyleHtml
。您需要将OP的代码从
reports.xml…
更改为
checkstyleMain.reports.xml…
tasks.withType(Checkstyle) {
  reports {
    html.enabled = true
  }
}