如何知道哪个 PMD 规则失败?

How to know which PMD rule fails?

项目中使用的Maven-pmd-plugin。当我尝试部署项目时,它失败并出现以下错误:

原因:org.apache.maven.plugin.MojoFailureException:PMD 检查阈值已设置为严重级别 'error' - 在该级别(或高于该级别)检测到 1 次违规,并且'failOnViolation' 为真 - 构建失败

我怎么知道哪个规则失败了?发现了什么违规行为?

使用 -e-X 执行 Maven 没有帮助。

target/site/pmd.html 中应该会生成一份 HTML 报告,其中列出了检测到的问题(问题描述和行)。

您还可以使用选项 -Dpmd.printFailingErrors=true 构建项目或在 pom.xml 文件中配置 maven 插件:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-pmd-plugin</artifactId>
    <version>3.8</version>
    <configuration>
        <printFailingErrors>true</printFailingErrors>
    </configuration>
    ....
</plugin>

https://maven.apache.org/plugins/maven-pmd-plugin/check-mojo.html#printFailingErrors

这将直接在控制台中打印出违反规则的情况。