如何抑制PMD中的违规行为?
How to suppress violations in PMD?
当我 运行 PMD 分析时,我收到违规:
Each class should declare at least one constructor
此违规行为发生在 Spring 控制器上。此控制器由 Spring 实例化,因此我不需要调用此 class.
忽略此违规行为的推荐方法是什么?
根据 this doc 可以使用 //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;
}
}
您可能还想了解的是 creating a ruleset and exclusions。也许您想禁用某个规则,或从 PMD 检查中排除某些文件。
在我的组织中,我使用 POM 文件中的 PMD 忽略选项来抑制为我们 auto-generate 的客户端存根(并保存在单独的模块中)生成的所有警告,因为它们是第三方 client-stubs 我们不倾向于触摸它们,认为有任何警告或违规行为,我假设您和我们一样。
下面是来自 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 插件发出的警告。
当我 运行 PMD 分析时,我收到违规:
Each class should declare at least one constructor
此违规行为发生在 Spring 控制器上。此控制器由 Spring 实例化,因此我不需要调用此 class.
忽略此违规行为的推荐方法是什么?
根据 this doc 可以使用 //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;
}
}
您可能还想了解的是 creating a ruleset and exclusions。也许您想禁用某个规则,或从 PMD 检查中排除某些文件。
在我的组织中,我使用 POM 文件中的 PMD 忽略选项来抑制为我们 auto-generate 的客户端存根(并保存在单独的模块中)生成的所有警告,因为它们是第三方 client-stubs 我们不倾向于触摸它们,认为有任何警告或违规行为,我假设您和我们一样。
下面是来自 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 插件发出的警告。