我正在尝试使用抑制过滤器,但会发生意外错误。
以下是错误消息。
“无法初始化模块 SuppressionFilter - 无法将模块SuppressionFilter中的属性'file'设置为 'checkstyle-suppressions.xml':无法找到checkstyle-suppressions.xml - 文档根元素“suppressions”,必须与DOCTYPE根“module”匹配。“
您能否告诉我如何解决此错误?
以下是我使用的配置文件和抑制文件内容。 我通过eclipse菜单配置了抑制滤波器(windows> preferences> checkstyle> configure> known modules> Suppression Filter> add)
======================================
<?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>
答案 0 :(得分:6)
您的抑制过滤器文件使用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}
变量确保即使您复制或重命名工作区也能正常工作。