如何抑制PMD中的违规行为?

2022-09-02 03:40:18

当我运行 PMD 分析时,我收到违规:

每个类应至少声明一个构造函数

此冲突发生在弹簧控制器上。这个控制器是由Spring实例化的,所以我不需要调用这个类。

忽略此违规行为的建议方法是什么?

根据这个文档可以使用,但我只想忽略具体的违规行为。//NOPMD


答案 1

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 检查中排除某些文件。


答案 2

在我的组织中,我使用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插件引发的警告。


推荐