# Chapter 58. The FindBugs Plugin

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

## 58.1. Usage

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

Example 58.1. Using the FindBugs plugin

`build.gradle`

    apply plugin: 'findbugs'

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

## 58.2. Tasks

The FindBugs plugin adds the following tasks to the project:

Table 58.1. FindBugs plugin - tasks

Task name | Depends on | Type | Description
`findbugsMain` | `classes` | `FindBugs` | Runs FindBugs against the production Java source files.
`findbugsTest` | `testClasses` | `FindBugs` | Runs FindBugs against the test Java source files.
`findbugs`SourceSet`` | ``sourceSet`Classes` | `FindBugs` | Runs FindBugs against the given source set's Java source files.

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

Table 58.2. FindBugs plugin - additional task dependencies

Task name | Depends on
`check` | All FindBugs tasks, including `findbugsMain` and `findbugsTest`.

## 58.3. Dependency management

The FindBugs plugin adds the following dependency configurations:

Table 58.3. FindBugs plugin - dependency configurations

Name | Meaning
`findbugs` | The FindBugs libraries to use

## 58.4. Configuration

See the `FindBugsExtension` class in the API documentation.

## 58.5. Customizing the HTML report

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

Example 58.2. Customizing the HTML report

`build.gradle`

    tasks.withType(FindBugs) {
        reports {
            xml.enabled false
            html.enabled true
            html.stylesheet resources.text.fromFile('config/xsl/findbugs-custom.xsl')
        }
    }

View a sample FindBugs stylesheet.