我试图使用抑制过滤器,但出现了意外错误。
以下是一条错误消息。
"无法初始化模块SuppressionFilter-无法将模块Suppression Filter中的属性"file"设置为"checkstyle suppressions.xml":找不到checkstyle-suppressions.xml-文档根元素"suppressions",必须与DOCTYPE根"module"匹配。"
你能告诉我如何解决这个错误吗?
以下是我使用的配置文件和抑制文件内容。我通过eclipse菜单配置了抑制过滤器(窗口>首选项>检查样式>配置>已知模块过滤器>抑制过滤器>添加)
====================================
配置文件是
<?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}
变量可以确保即使在复制或重命名工作空间时也能正常工作。