Java 当未使用的方法明显被使用时,为什么会出现PMD冲突
PMD故障:。。。规则:UnusedPrivateMethod优先级:3避免未使用的私有方法,如“printMyString(String)” 使用这个插件来mavenJava 当未使用的方法明显被使用时,为什么会出现PMD冲突,java,java-11,pmd,Java,Java 11,Pmd,PMD故障:。。。规则:UnusedPrivateMethod优先级:3避免未使用的私有方法,如“printMyString(String)” 使用这个插件来maven <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> <version>3.12
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.12.0</version>
org.apache.maven.plugins
maven pmd插件
3.12.0
这似乎是PMD中的一个错误,因为它在通过推断的“var”的变量类型之后有一个问题。目标方法具有专门定义的参数
我可以通过禁用特定的PMD规则来解决这个问题。在pom.xml中,我修改了PMD插件以使用本地规则文件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.12.0</version>
<configuration>
<linkXRef>false</linkXRef>
<printFailingErrors>true</printFailingErrors>
<failOnViolation>true</failOnViolation>
<rulesets>
<ruleset>${basedir}/PMD.xml</ruleset>
</rulesets>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
<goal>cpd-check</goal>
</goals>
</execution>
</executions>
</plugin>
org.apache.maven.plugins
maven pmd插件
3.12.0
假的
真的
真的
${basedir}/PMD.xml
检查
cpd检查
和PMD.xml文件(在项目的根目录中)
不包括规则。
我无法复制这个。你的代码在什么地方可用吗?你能创建一个复制这个问题的小样本项目吗?我准备了一个简单的测试项目:-对于方法processDocument来说它不会失败。该问题很快在PMD处被跟踪,但由于我们无法复制它,它已经结束。我更新了问题,为更新的示例提供了一个更简洁的问题示例。不幸的是,我仍然无法复制它:-当然,我需要添加一个方法来使用“anyMethod”,否则这将被标记为未使用。但printMyString被正确检测为已使用……请注意,使用调整后的规则集PMD.xml,您将执行比以前少得多的规则。默认情况下,maven pmd插件使用以下规则集:/rulesets/java/maven-pmd-plugin-default.xml-可在此处找到:(部分“默认规则集”)。从本地复制开始,注释掉你不想要的规则。除了完全禁用规则,还可以抑制:请参见
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.12.0</version>
<configuration>
<linkXRef>false</linkXRef>
<printFailingErrors>true</printFailingErrors>
<failOnViolation>true</failOnViolation>
<rulesets>
<ruleset>${basedir}/PMD.xml</ruleset>
</rulesets>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
<goal>cpd-check</goal>
</goals>
</execution>
</executions>
</plugin>
<ruleset xmlns="http://pmd.sourceforge.net/ruleset/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Default Maven PMD Plugin Ruleset" xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
<description>
Excluding rules.
</description>
<rule ref="category/java/bestpractices.xml">
<exclude name="UnusedPrivateMethod"/>
</rule>
</ruleset>