PMD 插件使用 PMD 对项目中的 Java 源文件进行质量检查,并生成这些检查的报告。

用法

要使用 PMD 插件,请在构建脚本中包含以下内容

build.gradle.kts
plugins {
    pmd
}
build.gradle
plugins {
    id 'pmd'
}

该插件向项目添加了一些任务来执行质量检查。您可以通过运行 gradle check 来执行这些检查。

请注意,PMD 将使用与运行 Gradle 相同的 Java 版本运行。

任务

PMD 插件向项目添加了以下任务

pmdMainPmd

对生产 Java 源文件运行 PMD。

pmdTestPmd

对测试 Java 源文件运行 PMD。

PMD 插件向 Java 插件定义的任务添加了以下依赖项。

表 1. PMD 插件 - 额外的任务依赖项
任务名称 取决于

检查

所有 PMD 任务,包括 pmdMainpmdTest

依赖管理

PMD 插件添加了以下依赖配置

表 2. PMD 插件 - 依赖配置
名称 含义

pmd

要使用的 PMD 库

pmdAux

在分析期间可用于类型解析的附加库。如果 PMD 抱怨缺少类,这可能会有用。

配置

build.gradle.kts
pmd {
    isConsoleOutput = true
    toolVersion = "6.21.0"
    rulesMinimumPriority = 5
    ruleSets = listOf("category/java/errorprone.xml", "category/java/bestpractices.xml")
}
build.gradle
pmd {
    consoleOutput = true
    toolVersion = "6.21.0"
    rulesMinimumPriority = 5
    ruleSets = ["category/java/errorprone.xml", "category/java/bestpractices.xml"]
}

请参阅 API 文档中的 PmdExtension 类。

并行分析

您可以配置 PMD 用于运行其分析的线程数。

build.gradle.kts
pmd {
    threads = 4
}
build.gradle
pmd {
    threads = 4
}

此配置是 PMD 的内部配置,与 Gradle 使用的工作程序数量 无关。这意味着您必须注意此处输入的值,并确保它在多项目构建中仍然有意义。这是因为并行 Gradle 任务执行会导致来自不同项目的不同 PMD 任务并行运行。如果多个 PMD 任务在 n 个项目中同时执行,那么最多可以同时运行 (n * thread) 个 PMD 线程。