The Checkstyle plugin performs quality checks on your project’s Java source files using Checkstyle and generates reports from these checks.

Usage

To use the Checkstyle plugin, include the following in your build script:

Example: Using the Checkstyle plugin

build.gradle
apply plugin: 'checkstyle'

The plugin adds a number of tasks to the project that perform the quality checks. You can execute the checks by running gradle check.

Note that Checkstyle will run with the same Java version used to run Gradle.

Tasks

The Checkstyle plugin adds the following tasks to the project:

checkstyleMainCheckstyle

Depends on: classes

Runs Checkstyle against the production Java source files.

checkstyleTestCheckstyle

Depends on: testClasses

Runs Checkstyle against the test Java source files.

checkstyleSourceSetCheckstyle

Depends on: sourceSetClasses

Runs Checkstyle against the given source set’s Java source files.

Dependencies added to other tasks

The Checkstyle plugin adds the following dependencies to tasks defined by the Java plugin.

check

Depends on: All Checkstyle tasks, including checkstyleMain and checkstyleTest.

Project layout

By default, the Checkstyle plugin expects configuration files to be placed in the root project, but this can be changed.

<root>
└── config
    └── checkstyle           (1)
        └── checkstyle.xml   (2)
        └── suppressions.xml
  1. Checkstyle configuration files go here

  2. Primary Checkstyle configuration file

Dependency management

The Checkstyle plugin adds the following dependency configurations:

Table 1. Checkstyle plugin - dependency configurations
Name Meaning

checkstyle

The Checkstyle libraries to use

Configuration

See the CheckstyleExtension class in the API documentation.

Built-in variables

The Checkstyle plugin defines a config_loc property that can be used in Checkstyle configuration files to define paths to other configuration files like suppressions.xml.

Example: Using the config_loc property

config/checkstyle/checkstyle.xml
<module name="SuppressionFilter">
    <property name="file" value="${config_loc}/suppressions.xml"/>
</module>

Customizing the HTML report

The HTML report generated by the Checkstyle task can be customized using a XSLT stylesheet, for example to highlight specific errors or change its appearance:

Example: Customizing the HTML report

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