The PMD plugin performs quality checks on your project’s Java source files using PMD and generates reports from these checks.
Usage
To use the PMD plugin, include the following in your build script:
plugins {
pmd
}
plugins {
id 'pmd'
}
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 PMD will run with the same Java version used to run Gradle.
Tasks
The PMD plugin adds the following tasks to the project:
The PMD plugin adds the following dependencies to tasks defined by the Java plugin.
Task name | Depends on |
---|---|
|
All PMD tasks, including |
Dependency management
The PMD plugin adds the following dependency configurations:
Name | Meaning |
---|---|
|
The PMD libraries to use |
|
The additional libraries that are available for type resolution during analysis. This might be useful if PMD complains about missing classes. |
Configuration
pmd {
isConsoleOutput = true
toolVersion = "7.0.0"
rulesMinimumPriority = 5
ruleSets = listOf("category/java/errorprone.xml", "category/java/bestpractices.xml")
}
pmd {
consoleOutput = true
toolVersion = "7.0.0"
rulesMinimumPriority = 5
ruleSets = ["category/java/errorprone.xml", "category/java/bestpractices.xml"]
}
See the PmdExtension class in the API documentation.
Parallel analysis
You can configure the number of threads to be used by PMD for running its analysis.
pmd {
threads = 4
}
pmd {
threads = 4
}
This configuration is internal to PMD and is not linked to the number of workers used by Gradle.
It means that you have to pay attention to the value entered here and make sure it still makes sense in a multi project build.
This is because parallel Gradle task execution could result in different PMD tasks from different projects running in parallel.
If multiple PMD tasks execute simultaneously in n projects, then up to a maximum of (n * |