pmd:pmd

注意:这个目标应该用作 Maven 报告。

全名

org.apache.maven.plugins:maven-pmd-plugin:3.10.0:pmd

说明

创建 PMD 报告。

属性

  • 需要执行一个 Maven 项目。
  • 需要对范围内的工件进行依赖解析:test
  • 自版本:2.0

必需参数

姓名 类型 自从 描述
输出目录 文件 2.0 最终 HTML 报告的输出目录。请注意,仅当目标直接从命令行运行或在默认生命周期期间运行时,才会评估此参数。如果目标作为站点生成的一部分间接运行,则使用在 Maven 站点插件中配置的输出目录。
用户属性是project.reporting.outputDirectory
目标目录 文件 2.0 中间 XML 报告的输出目录。
用户属性是project.build.directory

可选参数

姓名 类型 自从 描述
总计的 布尔值 2.2 是在根目录构建聚合报告,还是构建单独的报告。
默认值为false
用户属性是聚合
分析缓存 布尔值 3.8 启用分析缓存,从而加快 PMD。这需要一个缓存文件,其中包含上次 PMD 运行的结果。因此,只有在运行之间未清理此文件时,缓存才有效。
默认值为false
用户属性是pmd.analysisCache
分析缓存位置 细绳 3.8 分析缓存的位置(如果已启用)。此文件包含最后一次 PMD 运行的结果,不得在连续 PMD 运行之间清理。否则缓存没有被使用。如果文件不存在,则 PMD 会像没有启用缓存一样执行并分析所有文件。否则只会再次分析更改的文件。
默认值为${project.build.directory}/pmd/pmd.cache
用户属性是pmd.analysisCacheLocation
基准 布尔值 3.1 控制 PMD 是否将跟踪基准信息。
默认值为false
用户属性是pmd.benchmark
基准输出文件名 细绳 3.1 基准输出文件名。
默认值为${project.build.directory}/pmd-benchmark.txt
用户属性是pmd.benchmarkOutputFilename
编译SourceRoots 列表 3.7 指定要用于 PMD 的源目录的位置。默认为project.compileSourceRoots
默认值为${project.compileSourceRoots}
excludeFromFailureFile 细绳 3.7 列出要从失败中排除的类和规则的文件。对于 PMD,这是一个属性文件。对于 CPD,这是一个文本文件,其中包含允许复制的类的逗号分隔列表。
用户属性是pmd.excludeFromFailureFile
排除根 文件[] 2.2 应排除的项目源目录。
排除 列表 2.2 要从检查中排除的文件列表。可以包含 Ant 风格的通配符和双通配符。请注意,这些排除模式仅在源文件相对于其源根目录的路径上运行。换句话说,文件是根据它们的包和/或类名排除的。如果要排除整个源根目录,请改用参数excludeRoots
格式 细绳 2.0 除 HTML 报告外,还设置输出格式类型。必须是以下之一:“none”、“csv”、“xml”、“txt”或要使用的 PMD 渲染器的完整类名。有关可用的渲染器,请参阅 net.sourceforge.pmd.renderers 包 javadoc。如果正在使用 pmd:check 目标,则需要 XML。
默认值为xml
用户属性是格式
包括测试 布尔值 2.2 在测试上运行 PMD。
默认值为false
包括XmlInSite 布尔值 3.0 是否在站点中包含 PMD/CPD 生成的 xml 文件。
默认值为false
包括 列表 2.2 检查时要包含的文件列表。可以包含 Ant 风格的通配符和双通配符。默认为 **\/*.java。
语言 细绳 3.0 PMD 分析的编程语言。当前有效值为javajavascriptjsp
默认值为java
链接外部参照 布尔值 2.0 将违规行号链接到源外部参照。如果正在使用 jxr 插件,将自动创建链接。
默认值为true
用户属性是linkXRef
最低优先级 整数 2.1 规则优先级阈值;优先级低于此的规则将不会被评估。
默认值为5
用户属性是minimumPriority
输出编码 细绳 2.5 编写非 HTML 报告时的文件编码。
默认值为${project.reporting.outputEncoding}
用户属性是outputEncoding
渲染处理错误 布尔值 3.9.0 还将处理错误呈现到 HTML 报告中。处理错误是 PMD 在执行规则时遇到的问题。它可以在规则执行期间解析错误或异常。处理错误表明 PMD 中存在错误,并且提供的信息有助于报告和修复 PMD 中的错误。
默认值为true
用户属性是pmd.renderProcessingErrors
renderRuleViolationPriority 布尔值 3.10.0 还将规则优先级呈现到 HTML 报告中。
默认值为true
用户属性是pmd.renderRuleViolationPriority
规则集 细绳[] 2.0 要使用的 PMD 规则集。有关可用规则的​​列表,请参阅Stock Java 规则集。默认为此 maven 插件 ( /rulesets/java/maven-pmd-plugin-default.xml ) 提供的自定义规则集。
showPmdLog 布尔值 3.9.0 将 PMD 日志重定向到 maven 注销。启用后,PMD 日志输出将重定向到 maven,以便它与所有其他日志输出一起在控制台中可见。此外,如果 maven 以调试标志(-X--debug)启动,则 PMD 记录器也配置为进行调试。
默认值为true
用户属性是pmd.showPmdLog
跳过 布尔值 2.1 跳过 PMD 报告生成。通过“-Dpmd.skip=true”在命令行上最有用。
默认值为false
用户属性是pmd.skip
跳过空报告 布尔值 3.1 如果没有发现违规或重复,则跳过 PMD/CPD 报告生成。默认为true
默认值为true
skipPmdError 布尔值 3.1 每个默认的 pmd 执行错误都会被忽略,不会破坏整个
默认值是true
用户属性是pmd.skipPmdError
源编码 细绳 2.3 读取 Java 源代码时使用的文件编码。
默认值为${project.build.sourceEncoding}
用户属性是编码
抑制标记 细绳 3.4 用于指示是否应禁止 RuleViolation 的源级别标记。如果未设置,将使用 PMD 的默认值,即NOPMD。另请参阅PMD 抑制警告
用户属性是pmd.suppressMarker
目标Jdk 细绳 2.0 要分析的目标JDK。应该与编译器插件中使用的源相匹配。当前有效值为1.31.41.51.61.71.89

注意:此参数仅在语言参数设置为java时使用。


默认值为${maven.compiler.source}
用户属性是targetJdk
testSourceRoots 列表 3.7 包含要用于 PMD 的测试源的目录。默认为project.testCompileSourceRoots
默认值为${project.testCompileSourceRoots}
类型分辨率 布尔值 3.0 控制是否应将项目的编译/测试类路径传递给 PMD 以启用其类型解析功能。
默认值为true
用户属性是pmd.typeResolution
外部参照位置 文件 2.0 要链接到的外部参照的位置。
默认值为${project.reporting.outputDirectory}/xref
外部参照测试位置 文件 2.0 要链接到的测试外部参照的位置。
默认值为${project.reporting.outputDirectory}/xref-test

参数详情

聚合

是在根目录构建聚合报告,还是构建单独的报告。
  • 类型布尔值
  • : 2.2
  • 要求
  • 用户属性聚合
  • 默认值

分析缓存

启用分析缓存,从而加快 PMD。这需要一个缓存文件,其中包含上次 PMD 运行的结果。因此,只有在运行之间未清理此文件时,缓存才有效。
  • 类型布尔值
  • : 3.8
  • 要求
  • 用户属性pmd.analysisCache
  • 默认值

分析缓存位置

分析缓存的位置(如果已启用)。此文件包含最后一次 PMD 运行的结果,不得在连续 PMD 运行之间清理。否则缓存没有被使用。如果文件不存在,则 PMD 会像没有启用缓存一样执行并分析所有文件。否则只会再次分析更改的文件。
  • 类型java.lang.String
  • : 3.8
  • 要求
  • 用户属性pmd.analysisCacheLocation
  • 默认值${project.build.directory}/pmd/pmd.cache

基准

控制 PMD 是否将跟踪基准信息。
  • 类型布尔值
  • : 3.1
  • 要求
  • 用户属性pmd.benchmark
  • 默认值

基准输出文件名

基准输出文件名。
  • 类型java.lang.String
  • : 3.1
  • 要求
  • 用户属性pmd.benchmarkOutputFilename
  • 默认值${project.build.directory}/pmd-benchmark.txt

编译SourceRoots

指定要用于 PMD 的源目录的位置。默认为project.compileSourceRoots
  • 类型java.util.List
  • : 3.7
  • 要求
  • 默认值${project.compileSourceRoots}

excludeFromFailureFile

列出要从失败中排除的类和规则的文件。对于 PMD,这是一个属性文件。对于 CPD,这是一个文本文件,其中包含允许复制的类的逗号分隔列表。
  • 类型java.lang.String
  • : 3.7
  • 要求
  • 用户属性pmd.excludeFromFailureFile

排除根

应排除的项目源目录。
  • 类型java.io.File[]
  • : 2.2
  • 要求

不包括

要从检查中排除的文件列表。可以包含 Ant 风格的通配符和双通配符。请注意,这些排除模式仅在源文件相对于其源根目录的路径上运行。换句话说,文件是根据它们的包和/或类名排除的。如果要排除整个源根目录,请改用参数excludeRoots
  • 类型java.util.List
  • : 2.2
  • 要求

格式

除 HTML 报告外,还设置输出格式类型。必须是以下之一:“none”、“csv”、“xml”、“txt”或要使用的 PMD 渲染器的完整类名。有关可用的渲染器,请参阅 net.sourceforge.pmd.renderers 包 javadoc。如果正在使用 pmd:check 目标,则需要 XML。
  • 类型java.lang.String
  • : 2.0
  • 要求
  • 用户属性格式
  • 默认值xml

包括测试

在测试上运行 PMD。
  • 类型布尔值
  • : 2.2
  • 要求
  • 默认值

包括XmlInSite

是否在站点中包含 PMD/CPD 生成的 xml 文件。
  • 类型布尔值
  • : 3.0
  • 要求
  • 默认值

包括

检查时要包含的文件列表。可以包含 Ant 风格的通配符和双通配符。默认为 **\/*.java。
  • 类型java.util.List
  • : 2.2
  • 要求

语言

PMD 分析的编程语言。当前有效值为javajavascriptjsp
  • 类型java.lang.String
  • : 3.0
  • 要求
  • 默认值java

链接外部参照

将违规行号链接到源外部参照。如果正在使用 jxr 插件,将自动创建链接。
  • 类型布尔值
  • : 2.0
  • 要求
  • 用户属性linkXRef
  • 默认值

最低优先级

规则优先级阈值;优先级低于此的规则将不会被评估。
  • 类型整数
  • : 2.1
  • 要求
  • 用户属性minimumPriority
  • 默认值5

输出目录

最终 HTML 报告的输出目录。请注意,仅当目标直接从命令行运行或在默认生命周期期间运行时,才会评估此参数。如果目标作为站点生成的一部分间接运行,则使用在 Maven 站点插件中配置的输出目录。
  • 类型java.io.File
  • : 2.0
  • 要求
  • 用户属性project.reporting.outputDirectory

输出编码

编写非 HTML 报告时的文件编码。
  • 类型java.lang.String
  • : 2.5
  • 要求
  • 用户属性输出编码
  • 默认值${project.reporting.outputEncoding}

渲染处理错误

还将处理错误呈现到 HTML 报告中。处理错误是 PMD 在执行规则时遇到的问题。它可以在规则执行期间解析错误或异常。处理错误表明 PMD 中存在错误,并且提供的信息有助于报告和修复 PMD 中的错误。
  • 类型布尔值
  • 3.9.0
  • 要求
  • 用户属性pmd.renderProcessingErrors
  • 默认值

renderRuleViolationPriority

还将规则优先级呈现到 HTML 报告中。
  • 类型布尔值
  • 3.10.0
  • 要求
  • 用户属性pmd.renderRuleViolationPriority
  • 默认值

规则集

要使用的 PMD 规则集。有关可用规则的​​列表,请参阅Stock Java 规则集。默认为此 maven 插件 ( /rulesets/java/maven-pmd-plugin-default.xml ) 提供的自定义规则集。
  • 类型java.lang.String[]
  • : 2.0
  • 要求

显示PmdLog

将 PMD 日志重定向到 maven 注销。启用后,PMD 日志输出将重定向到 maven,以便它与所有其他日志输出一起在控制台中可见。此外,如果 maven 以调试标志(-X--debug)启动,则 PMD 记录器也配置为进行调试。
  • 类型布尔值
  • 3.9.0
  • 要求
  • 用户属性pmd.showPmdLog
  • 默认值

跳过

跳过 PMD 报告生成。通过“-Dpmd.skip=true”在命令行上最有用。
  • 类型布尔值
  • : 2.1
  • 要求
  • 用户属性pmd.skip
  • 默认值

跳过空报告

如果没有发现违规或重复,则跳过 PMD/CPD 报告生成。默认为true
  • 类型布尔值
  • : 3.1
  • 要求
  • 默认值

跳过Pmd错误

每个默认的 pmd 执行错误都会被忽略,不会破坏整体
  • 类型布尔值
  • : 3.1
  • 要求
  • 用户属性pmd.skipPmdError
  • 默认值

源编码

读取 Java 源代码时使用的文件编码。
  • 类型java.lang.String
  • : 2.3
  • 要求
  • 用户属性编码
  • 默认值${project.build.sourceEncoding}

抑制标记

用于指示是否应禁止 RuleViolation 的源级别标记。如果未设置,将使用 PMD 的默认值,即NOPMD。另请参阅PMD 抑制警告
  • 类型java.lang.String
  • : 3.4
  • 要求
  • 用户属性pmd.suppressMarker

目标目录

中间 XML 报告的输出目录。
  • 类型java.io.File
  • : 2.0
  • 要求
  • 用户属性project.build.directory

目标Jdk

要分析的目标JDK。应该与编译器插件中使用的源相匹配。当前有效值为1.31.41.51.61.71.89

注意:此参数仅在语言参数设置为java时使用。

  • 类型java.lang.String
  • : 2.0
  • 要求
  • 用户属性targetJdk
  • 默认值${maven.compiler.source}

测试源根

包含要用于 PMD 的测试源的目录。默认为project.testCompileSourceRoots
  • 类型java.util.List
  • : 3.7
  • 要求
  • 默认值${project.testCompileSourceRoots}

类型解析

控制是否应将项目的编译/测试类路径传递给 PMD 以启用其类型解析功能。
  • 类型布尔值
  • : 3.0
  • 要求
  • 用户属性pmd.typeResolution
  • 默认值

外部参照位置

要链接到的外部参照的位置。
  • 类型java.io.File
  • : 2.0
  • 要求
  • 默认值${project.reporting.outputDirectory}/xref

外部参照测试位置

要链接到的测试外部参照的位置。
  • 类型java.io.File
  • : 2.0
  • 要求
  • 默认值${project.reporting.outputDirectory}/xref-test