如何在eclipse中抑制特定的checkstyle规则?

时间:2013-07-24 08:00:11

标签: checkstyle suppression

我正在尝试使用抑制过滤器,但会发生意外错误。

以下是错误消息。

“无法初始化模块 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>

1 个答案:

答案 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}变量确保即使您复制或重命名工作区也能正常工作。