# PmdExtension

API Documentation: | `PmdExtension`

Configuration options for the PMD plugin.

### Properties

Property | Description
`consoleOutput` | Whether or not to write PMD results to `System.out`.
`ignoreFailures` | Whether to allow the build to continue if there are warnings. Example: ignoreFailures = true
`incrementalAnalysis` | Controls whether to use incremental analysis or not. This is only supported for PMD 6.0.0 or better. See https://pmd.github.io/pmd-6.39.0/pmd_userdocs_incremental_analysis.html for more details.
`maxFailures` | The maximum number of failures to allow before stopping the build. If
`reportsDir` | The directory where reports will be generated.
`ruleSetConfig` | The custom rule set to be used (if any). Replaces `ruleSetFiles`, except that it does not currently support multiple rule sets. See the official documentation for how to author a rule set.
`ruleSetFiles` | The custom rule set files to be used. See the official documentation for how to author a rule set file. If you want to only use custom rule sets, you must clear `ruleSets`.
`ruleSets` | The built-in rule sets to be used. See the official list of built-in rule sets.
`rulesMinimumPriority` | The rule priority threshold; violations for rules with a lower priority will not be reported. Default value is 5, which means that all violations will be reported. This is equivalent to PMD's Ant task minimumPriority property. See the official documentation for the list of priorities.
`sourceSets` | The source sets to be analyzed as part of the `check` and `build` tasks.
`targetJdk` | The target jdk to use with pmd, 1.3, 1.4, 1.5, 1.6, 1.7 or jsp
`threads` | Incubating The number of threads used by PMD.
`toolVersion` | The version of the code quality tool to be used.

### Methods

Method | Description
`ruleSetFiles(ruleSetFiles)` | Convenience method for adding rule set files.
`ruleSets(ruleSets)` | Convenience method for adding rule sets.

### Script blocks

No script blocks

### Property details

#### `boolean` `consoleOutput`

Whether or not to write PMD results to `System.out`.

Default:
  `false`

#### `boolean` `ignoreFailures`

Whether to allow the build to continue if there are warnings. Example: ignoreFailures = true

#### ``Property`<`Boolean`>` `incrementalAnalysis`

Controls whether to use incremental analysis or not. This is only supported for PMD 6.0.0 or better. See https://pmd.github.io/pmd-6.39.0/pmd_userdocs_incremental_analysis.html for more details.

Default:
  `false`

#### ``Property`<`Integer`>` `maxFailures`

The maximum number of failures to allow before stopping the build. If

    ignoreFailures

is set, this is ignored and no limit is enforced.

Default:
  `0`

#### `File` `reportsDir`

The directory where reports will be generated.

#### `TextResource` `ruleSetConfig`

The custom rule set to be used (if any). Replaces `ruleSetFiles`, except that it does not currently support multiple rule sets. See the official documentation for how to author a rule set.

    ruleSetConfig = resources.text.fromFile("config/pmd/myRuleSet.xml")

Default:
  `null`

#### `FileCollection` `ruleSetFiles`

The custom rule set files to be used. See the official documentation for how to author a rule set file. If you want to only use custom rule sets, you must clear `ruleSets`.

    ruleSetFiles = files("config/pmd/myRuleSet.xml")

Default:
  `[]`

#### ``List`<`String`>` `ruleSets`

The built-in rule sets to be used. See the official list of built-in rule sets.

    ruleSets = ["category/java/errorprone.xml", "category/java/bestpractices.xml"]

Default:
  `["category/java/errorprone.xml"]`

#### ``Property`<`Integer`>` `rulesMinimumPriority`

The rule priority threshold; violations for rules with a lower priority will not be reported. Default value is 5, which means that all violations will be reported. This is equivalent to PMD's Ant task minimumPriority property. See the official documentation for the list of priorities.

    rulesMinimumPriority = 3

Default:
  `5`

#### ``Collection`<`SourceSet`>` `sourceSets`

The source sets to be analyzed as part of the `check` and `build` tasks.

Default:
  `project.sourceSets`

#### `TargetJdk` `targetJdk`

The target jdk to use with pmd, 1.3, 1.4, 1.5, 1.6, 1.7 or jsp

Default:
  `project.sourceCompatibility`

#### ``Property`<`Integer`>` `threads`

Note: This property is incubating and may change in a future version of Gradle.

The number of threads used by PMD.

Default:
  `1`

#### `String` `toolVersion`

The version of the code quality tool to be used.

### Method details

#### `void` `ruleSetFiles`(``Object`...` ruleSetFiles)

Convenience method for adding rule set files.

    ruleSetFiles "config/pmd/myRuleSet.xml"

#### `void` `ruleSets`(``String`...` ruleSets)

Convenience method for adding rule sets.

    ruleSets "category/java/errorprone.xml", "category/java/bestpractices.xml"