如何在POM.xml中排除PMD规则集中的stdCyclomatic规则?
如何在Maven PMD插件中排除废弃的stdCyclomatic规则
要排除PMD中废弃的stdCyclomatic规则,你可以通过两种方式修改Maven配置,以下是具体实现:
方法一:直接在POM.xml中配置排除规则
在现有PMD插件的<configuration>节点内,添加<excludes>标签指定要排除的规则全路径。stdCyclomatic规则属于design.xml规则集,所以完整排除路径为/category/java/design.xml/stdCyclomatic。
修改后的POM配置片段如下:
<rulesets> <ruleset>/category/java/bestpractices.xml</ruleset> <ruleset>/category/java/design.xml</ruleset> </rulesets> <excludes> <exclude>/category/java/design.xml/stdCyclomatic</exclude> </excludes> <format>net.sourceforge.pmd.renderers.SummaryHTMLRenderer</format>
方法二:使用自定义规则集文件(更灵活)
如果需要调整多个规则,建议创建自定义规则集文件,比如src/main/resources/pmd-custom-ruleset.xml,内容如下:
<?xml version="1.0"?> <ruleset name="Custom PMD Ruleset" xmlns="http://pmd.sourceforge.net/ruleset/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd"> <!-- 引入需要的基础规则集 --> <rule ref="/category/java/bestpractices.xml"/> <rule ref="/category/java/design.xml"> <!-- 排除指定规则 --> <exclude name="stdCyclomatic"/> </rule> </ruleset>
然后在POM.xml中引用这个自定义规则集,替换原有的<rulesets>配置:
<rulesets> <ruleset>src/main/resources/pmd-custom-ruleset.xml</ruleset> </rulesets> <format>net.sourceforge.pmd.renderers.SummaryHTMLRenderer</format>
验证配置
执行mvn pmd:pmd命令生成检测报告,打开HTML文件确认stdCyclomatic规则的结果已不再显示。
内容的提问来源于stack exchange,提问作者heidi hlm
相关产品推荐
相关产品推荐

