定义PMD规则集时是否可以从特定规则中排除源文件?
我想做类似以下的事情:
<rule ref=rulesets/java/logging-java.xml>
<exclude name="Ignore.java" />
</rule>
Run Code Online (Sandbox Code Playgroud)
仅排除似乎支持规则名称.源文件有什么类似的东西吗?
如果您使用该maven-pmd-plugin工具来运行 PMD,那么您可以包含一个列出要忽略的类和规则的属性文件。
org.apache.maven.ClassA=UnusedPrivateField,EmptyCatchBlock
org.apache.maven.ClassB=UnusedPrivateField,UnusedFormalParameter,UnusedPrivateMethod
Run Code Online (Sandbox Code Playgroud)
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.8</version>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
<configuration>
<excludeFromFailureFile>exclude-pmd.properties</excludeFromFailureFile>
</configuration>
</execution>
<execution>
<goals>
<goal>cpd-check</goal>
</goals>
<configuration>
<excludeFromFailureFile>exclude-cpd.properties</excludeFromFailureFile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
</project>
Run Code Online (Sandbox Code Playgroud)
更多详情:https : //maven.apache.org/plugins/maven-pmd-plugin/examples/violation-exclusions.html
除非编写自定义规则来添加按文件名排除的逻辑。
我认为在您的场景中,最好的方法是分两次运行 PMD - 一次针对所有代码使用更大的规则集。还有一个针对您想要额外检查的代码的较小规则集。
这确实有生成两份报告的缺点。但这比您提出的问题(或创建自定义规则)更容易解决。PMD 可以生成 XML 输出。您可以通过编程方式合并这些内容,然后调用 PMD 的代码在最后生成 HTML 报告。或者您也可以只获得两份报告并立即完成。
| 归档时间: |
|
| 查看次数: |
6636 次 |
| 最近记录: |