在pmd中抑制违规行为

时间:2015-08-28 13:24:10

标签: java spring pmd

当我运行pmd分析时,我发现了违规行为:

Each class should declare at least one constructor

此违规是在Spring控制器上。该控制器由Spring实例化,因此不需要调用该类。

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

根据http://pmd.sourceforge.net/pmd-4.3/suppressing.html可以使用// NOPMD,但我只是想忽略特定的违规行为。

2 个答案:

答案 0 :(得分:9)

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;
 }
}

您可能还想查看的内容是creating a ruleset and exclusions。也许您想禁用某个规则,或从PMD检查中排除某些文件。

答案 1 :(得分:0)

我组织中的@ blue-sky我在POM文件中使用PMD ignore选项来抑制为我们自动生成的客户端存根(并保存在单独的模块中)生成的所有警告,因为它们是第三方客户端存根我们不会因为有任何警告或违规行为而倾向于触碰他们,我会为您做出与我们相同的事情。

以下是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插件引发的警告。

希望这可以帮助您,我对您的问题理解是正确的。

此致 阿克沙伊