我正在尝试使用抑制过滤器,但是发生意外错误。
以下是错误消息。
“无法初始化模块
SuppressionFilter-无法将模块SuppressionFilter中的属性"file"设置为
“'checkstyle-suppressions.xml':找不到checkstyle-suppressions.xml-文档根元素“suppressions”,必须与DOCTYPE根“module”匹配。”
您能否让我知道如何解决此错误?
以下是我使用的配置文件和禁止文件的内容。
我通过Eclipse菜单配置了抑制过滤器(Windows>首选项>检查样式>配置>已知模块过滤器>抑制过滤器>添加)
=====================================
配置文件是
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
<property name="severity" value="warning"/>
<module name="TreeWalker">
<module name="MagicNumber">
<property name="ignoreNumbers" value="-1, 0, 1"/>
</module>
</module>
</module>
==================================
抑制过滤器文件是...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<suppressions>
<suppress checks="MagicNumberCheck"
files="Home.java"
lines="350-370"/>
</suppressions>
最佳答案
您的抑制过滤器文件使用1.1语法,但声称正在使用较新的1.3语法。像这样交换标题:
<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN"
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
另外,您的配置文件必须引用抑制过滤器。添加这样的模块定义(将其添加到最后一个关闭的
</module>
标记之前,而不是Treewalker
下):<module name="SuppressionFilter">
<property name="file" value="${workspace_loc}/MyProject/suppressions.xml"/>
</module>
使用
${workspace_loc}
变量可确保即使复制或重命名工作空间也能正常工作。