使用Gradle生成Checkstyle HTML报告
我希望通过Gradle以HTML报告的形式获得运行Checkstyle的输出 我在这本书里什么也没找到 我已将以下内容添加到我的使用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
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
}
}