# Chapter 29. The Checkstyle Plugin

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

## 29.1. Usage

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

Example 29.1. 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`.

## 29.2. Tasks

The Checkstyle plugin adds the following tasks to the project:

Table 29.1. Checkstyle plugin - tasks

Task name | Depends on | Type | Description
`checkstyleMain` | `classes` | `Checkstyle` | Runs Checkstyle against the production Java source files.
`checkstyleTest` | `testClasses` | `Checkstyle` | Runs Checkstyle against the test Java source files.
`checkstyle`SourceSet`` | ``sourceSet`Classes` | `Checkstyle` | Runs Checkstyle against the given source set's Java source files.

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

Table 29.2. Checkstyle plugin - additional task dependencies

Task name | Depends on
`check` | All Checkstyle tasks, including `checkstyleMain` and `checkstyleTest`.

## 29.3. Project layout

The Checkstyle plugin expects the following project layout:

Table 29.3. Checkstyle plugin - project layout

File | Meaning
`config/checkstyle/checkstyle.xml` | Checkstyle configuration file

## 29.4. Dependency management

The Checkstyle plugin adds the following dependency configurations:

Table 29.4. Checkstyle plugin - dependency configurations

Name | Meaning
`checkstyle` | The Checkstyle libraries to use

## 29.5. Configuration

See the `CheckstyleExtension` class in the API documentation.