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

用法

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

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

该插件向项目添加了许多执行质量检查的 task。你可以通过运行 gradle check 来执行检查。

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

Task

PMD 插件向项目添加了以下 task

pmdMainPmd

针对生产 Java 源文件运行 PMD。

pmdTestPmd

针对测试 Java 源文件运行 PMD。

PMD 插件将以下依赖项添加到 Java 插件定义的 task 中。

表 1. PMD 插件 - 额外的 task 依赖项
Task 名称 依赖于

check

所有 PMD task,包括 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 使用的worker 数量。这意味着你必须注意此处输入的值,并确保它在多项目构建中仍然有意义。这是因为并行的 Gradle task 执行可能会导致来自不同项目的不同 PMD task 并行运行。如果多个 PMD task 在 n 个项目中同时执行,则最多可以同时运行 (n * thread) 个 PMD 线程。