如何抑制PMD中的违规行为?
当我运行 PMD 分析时,我收到违规:
每个类应至少声明一个构造函数
此冲突发生在弹簧控制器上。这个控制器是由Spring实例化的,所以我不需要调用这个类。
忽略此违规行为的建议方法是什么?
根据这个文档可以使用,但我只想忽略具体的违规行为。//NOPMD
当我运行 PMD 分析时,我收到违规:
每个类应至少声明一个构造函数
此冲突发生在弹簧控制器上。这个控制器是由Spring实例化的,所以我不需要调用这个类。
忽略此违规行为的建议方法是什么?
根据这个文档可以使用,但我只想忽略具体的违规行为。//NOPMD
PMD 还支持@SuppressWarnings注释:
// This will suppress all the PMD warnings in this class
@SuppressWarnings("PMD")
public class Bar {
void bar() {
int foo;
}
}
或者只是一种类型的警告:
// This will suppress UnusedLocalVariable warnings in this class
@SuppressWarnings("PMD.UnusedLocalVariable")
public class Bar {
void bar() {
int foo;
}
}
您可能还需要查看的是创建规则集和排除项。也许您想要禁用某个规则,或从 PMD 检查中排除某些文件。
在我的组织中,我使用POM文件中的PMD忽略选项来抑制我们为自动生成的客户端存根(并保存在单独的模块中)生成的所有警告,因为这些是第三方客户端存根,我们不倾向于触摸它们,认为有任何警告或违规,我也假设你同样的事情。
下面是POM文件的片段,它具有客户端存根模块
<build>
<plugins>
<plugin>
<!-- <groupId>org.apache.maven.plugins</groupId> -->
<artifactId>maven-pmd-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.8</version>
</plugin>
</plugins>
</pluginManagement>
</build>
这样,我们可以完全跳过PMD插件引发的警告。