Contents

检查风格插件在你的项目中的java源文件上执行质量检查 - 使用Checkstyle 并从这些检查中生成报告 ..

Usage

为了使用Checkstyle plugin,添加以下内容到构建脚本中

  1. plugins {
  2. id 'checkstyle'
  3. }

此插件增加了一些任务到项目中执行质量检查,你能够通过 gradle check 执行质量检查

Tasks

Checkstyle 插件增加了以下任务到项目中:

依赖: classes
针对生产 Java 源文件运行 Checkstyle

依赖: testClasses
针对测试java 源文件运行 Checkstyle

依赖: sourceSetClasses
根据对给定的资源集的java源文件运行Checkstyle

Dependencies added to other tasks

此插件增加了以下依赖到由java 插件定义的任务中

  • check

依赖于 所有的Checkstyle tasks, 包括 checkstyleMain 以及 checkstyleTest .
也就是说它的工作原理,是通过check 任务触发的 ..

Project layout

默认来说,Checkstyle 插件期待配置文件能够放置在根项目中,但是这个规则可以被改变 …

  1. <root>
  2. └── config
  3. └── checkstyle
  4. └── checkstyle.xml
  5. └── suppressions.xml
  1. 插件配置文件放置在 checkstyle中
  2. 主要的Checkstyle 配置文件 -> checkstyle.xml

    Dependency management

    Checkstyle 插件 增加了以下的依赖配置(dependency configurations)
Name Meaning
checkstyle 使用的Checkstyle 库

Configuration

查看CheckstyleExtension Api 文档了解更多.

内置变量

此插件定义了一个 config_loc 属性 能够使用在Checkstyle 配置文件中定义其他配置文件(例如 suppressions.xml)的路径

  1. <module name="SuppressionFilter">
  2. <property name="file" value="${config_loc}/suppressions.xml" />
  3. </module>

定制HTML 报告

HTML 报告由Checkstyle 任务生成 并且可以通过XSLT 层叠样式表进行定制,例如 高亮指定的错误或者改变它们的外貌:

tasks.withType(Checkstyle) {
    reports {
        xml.required = false
        html.required = true
        html.stylesheet resources.text.fromFile('config/xsl/checkstyle-custom.xsl')
    }
}

查看一个检查风格层叠样式表示例

使用示例

  1. 首先插件中引入它

    plugins {
     id "java-gradle-plugin"
     id "io.spring.javaformat" version "${javaFormatVersion}"
     id "checkstyle"
    }
    
  2. 在依赖配置中通过checkstyle 指定使用检查的库

    depenedencies {
     checkstyle "io.spring.javaformat:spring-javaformat-checkstyle:${javaFormatVersion}"
    }
    

    这里的版本是项目属性,通过gradle.properties 扩展的 …

  3. 定制checkstyle 插件

    checkstyle {
     def archive = configurations.checkstyle.filter { it.name.startsWith("spring-javaformat-checkstyle")}
     // 配置
     config = resources.text.fromArchiveEntry(archive, "io/spring/javaformat/checkstyle/checkstyle.xml")
     toolVersion = 8.11
    }