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 插件 - 附加任务依赖项
任务名称 依赖于

check

所有 PMD 任务,包括 pmdMainpmdTest

依赖管理

PMD 插件添加以下依赖配置

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

pmd

要使用的 PMD 库

pmdAux

分析期间可用于类型解析的额外库。如果 PMD 报告缺少类,这可能会很有用。

配置

build.gradle.kts
pmd {
    isConsoleOutput = true
    toolVersion = "7.0.0"
    rulesMinimumPriority = 5
    ruleSets = listOf("category/java/errorprone.xml", "category/java/bestpractices.xml")
}
build.gradle
pmd {
    consoleOutput = true
    toolVersion = "7.0.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 任务并行运行。如果在 n 个项目中同时执行多个 PMD 任务,则最多可能有 (n * thread) 个 PMD 线程同时运行。