Package org.gradle.api.plugins.quality

## Class PmdExtension

- java.lang.Object
- - org.gradle.api.plugins.quality.CodeQualityExtension
  - - org.gradle.api.plugins.quality.PmdExtension

-     public class PmdExtension
      extends CodeQualityExtension

  Configuration options for the PMD plugin.
  See Also:
    `PmdPlugin`

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `PmdExtension​(Project project)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Property<Boolean>` | `getIncrementalAnalysis()` | Controls whether to use incremental analysis or not.
    `int` | `getRulePriority()` | The rule priority threshold; violations for rules with a lower priority will not be reported.
    `TextResource` | `getRuleSetConfig()` | The custom rule set to be used (if any).
    `FileCollection` | `getRuleSetFiles()` | The custom rule set files to be used.
    `List<String>` | `getRuleSets()` | The built-in rule sets to be used.
    `TargetJdk` | `getTargetJdk()` | The target jdk to use with pmd, 1.3, 1.4, 1.5, 1.6, 1.7 or jsp
    `boolean` | `isConsoleOutput()` | Whether or not to write PMD results to `System.out`.
    `void` | `ruleSetFiles​(Object... ruleSetFiles)` | Convenience method for adding rule set files.
    `void` | `ruleSets​(String... ruleSets)` | Convenience method for adding rule sets.
    `void` | `setConsoleOutput​(boolean consoleOutput)` | Whether or not to write PMD results to `System.out`.
    `void` | `setRulePriority​(int intValue)` | Sets the rule priority threshold.
    `void` | `setRuleSetConfig​(TextResource ruleSetConfig)` | The custom rule set to be used (if any).
    `void` | `setRuleSetFiles​(FileCollection ruleSetFiles)` | The custom rule set files to be used.
    `void` | `setRuleSets​(List<String> ruleSets)` | The built-in rule sets to be used.
    `void` | `setTargetJdk​(Object value)` | Sets the target jdk used with pmd.
    `void` | `setTargetJdk​(TargetJdk targetJdk)` | Sets the target jdk used with pmd.

    - ### Methods inherited from class org.gradle.api.plugins.quality.CodeQualityExtension

      `getReportsDir, getSourceSets, getToolVersion, isIgnoreFailures, setIgnoreFailures, setReportsDir, setSourceSets, setToolVersion`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PmdExtension

          public PmdExtension​(Project project)

  - ### Method Detail

    - #### getRuleSets

          public List<String> getRuleSets()

      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"]

    - #### setRuleSets

          public void setRuleSets​(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"]

    - #### ruleSets

          public void ruleSets​(String... ruleSets)

      Convenience method for adding rule sets.

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

      Parameters:
        `ruleSets` - the rule sets to be added

    - #### getTargetJdk

          public TargetJdk getTargetJdk()

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

    - #### setTargetJdk

          public void setTargetJdk​(TargetJdk targetJdk)

      Sets the target jdk used with pmd.
      Parameters:
        `targetJdk` - The target jdk
      Since:
        4.0

    - #### setTargetJdk

          public void setTargetJdk​(Object value)

      Sets the target jdk used with pmd.
      Parameters:
        `value` - The value for the target jdk as defined by `TargetJdk.toVersion(Object)`

    - #### getRulePriority

          public int getRulePriority()

      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.

               rulePriority = 3

    - #### setRulePriority

          public void setRulePriority​(int intValue)

      Sets the rule priority threshold.

    - #### getRuleSetConfig

          @Nullable
          public TextResource getRuleSetConfig()

      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")

      Since:
        2.2

    - #### setRuleSetConfig

          public void setRuleSetConfig​(@Nullable
                                       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")

      Since:
        2.2

    - #### getRuleSetFiles

          public FileCollection getRuleSetFiles()

      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")

    - #### setRuleSetFiles

          public void setRuleSetFiles​(FileCollection ruleSetFiles)

      The custom rule set files to be used. See the official documentation for how to author a rule set file. This adds to the default rule sets defined by `getRuleSets()`.

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

    - #### ruleSetFiles

          public void ruleSetFiles​(Object... ruleSetFiles)

      Convenience method for adding rule set files.

               ruleSetFiles "config/pmd/myRuleSet.xml"

      Parameters:
        `ruleSetFiles` - the rule set files to be added

    - #### isConsoleOutput

          public boolean isConsoleOutput()

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

    - #### setConsoleOutput

          public void setConsoleOutput​(boolean consoleOutput)

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

    - #### getIncrementalAnalysis

          @Incubating
          public Property<Boolean> getIncrementalAnalysis()

      Controls whether to use incremental analysis or not. This is only supported for PMD 6.0.0 or better. See for more details.
      Since:
        5.6