Checkstyle 插件使用 Checkstyle 对项目中的 Java 源文件进行质量检查,并根据这些检查生成报告。
用法
要使用 Checkstyle 插件,请在您的构建脚本中包含以下内容
plugins {
checkstyle
}
plugins {
id 'checkstyle'
}
该插件向项目添加了许多任务来执行质量检查。您可以通过运行 gradle check
来执行检查。
请注意,Checkstyle 将使用与运行 Gradle 相同的 Java 版本运行。
任务
Checkstyle 插件向项目添加以下任务
checkstyleMain
— Checkstyle-
依赖于:
classes
对生产 Java 源文件运行 Checkstyle。
checkstyleTest
— Checkstyle-
依赖于:
testClasses
对测试 Java 源文件运行 Checkstyle。
checkstyleSourceSet
— Checkstyle-
依赖于:
sourceSetClasses
对给定源集的 Java 源文件运行 Checkstyle。
添加到其他任务的依赖项
Checkstyle 插件将以下依赖项添加到 Java 插件定义的任务中。
check
-
依赖于:所有 Checkstyle 任务,包括
checkstyleMain
和checkstyleTest
。
项目布局
默认情况下,Checkstyle 插件期望配置文件位于根项目中,但这可以更改。
<root> └── config └── checkstyle (1) └── checkstyle.xml (2) └── suppressions.xml
1 | Checkstyle 配置文件放在这里 |
2 | 主要 Checkstyle 配置文件 |
依赖管理
Checkstyle 插件添加以下依赖配置
名称 | 含义 |
---|---|
|
要使用的 Checkstyle 库 |
默认情况下,checkstyle
配置使用 com.puppycrawl.tools:checkstyle
。使用的 com.puppycrawl.tools:checkstyle
版本是从扩展的工具版本派生的
checkstyle {
toolVersion = "10.12.4"
}
如果添加了其他依赖项,则默认的 com.puppycrawl.tools:checkstyle
依赖项将被删除
checkstyle {
toolVersion = "10.12.4"
}
dependencies {
checkstyle "group:artifact:version"
}
要将依赖项添加到 checkstyle
配置中,同时保留对 com.puppycrawl.tools:checkstyle
的依赖项,请使用以下解决方案
checkstyle {
toolVersion = "10.12.4"
}
dependencies {
checkstyle "com.puppycrawl.tools:checkstyle:${checkstyle.toolVersion}"
checkstyle "group:artifact:version"
}
配置
请参阅 API 文档中的 CheckstyleExtension 类。
内置变量
Checkstyle 插件定义了一个 config_loc
属性,它可以在 Checkstyle 配置文件中使用,以定义指向其他配置文件(如 suppressions.xml
)的路径。
<module name="SuppressionFilter">
<property name="file" value="${config_loc}/suppressions.xml"/>
</module>
自定义 HTML 报告
可以使用 XSLT 样式表自定义由 Checkstyle 任务生成的 HTML 报告,例如突出显示特定错误或更改其外观
tasks.withType<Checkstyle>().configureEach {
reports {
xml.required = false
html.required = true
html.stylesheet = resources.text.fromFile("config/xsl/checkstyle-custom.xsl")
}
}
tasks.withType(Checkstyle) {
reports {
xml.required = false
html.required = true
html.stylesheet resources.text.fromFile('config/xsl/checkstyle-custom.xsl')
}
}
生成 SARIF 报告
SARIF 报告在 Checkstyle 版本 10.3.3 及更高版本上受支持。它默认情况下未启用。
checkstyle {
toolVersion = "10.3.3"
}
tasks.withType<Checkstyle>().configureEach {
reports {
sarif.required = true
}
}
checkstyle {
toolVersion = '10.3.3'
}
tasks.withType(Checkstyle) {
reports {
sarif.required = true
}
}
更改分配给 Checkstyle 的内存量
Checkstyle 分析是在一个单独的进程中执行的。默认情况下,Checkstyle 进程被分配了 512MB 的最大堆。当分析大量源文件时,您可能需要为该进程提供额外的内存。您可以通过配置 Checkstyle.maxHeapSize 来更改 Checkstyle 的内存量。
tasks.withType<Checkstyle>().configureEach {
minHeapSize = "200m"
maxHeapSize = "1g"
}
tasks.withType(Checkstyle) {
minHeapSize = "200m"
maxHeapSize = "1g"
}