5

我正在尝试使用抑制过滤器,但出现意外错误。

以下是一条错误消息。

“无法初始化模块 SuppressionFilter - 无法将模块 SuppressionFilter 中的属性 'file' 设置为 'checkstyle-suppressions.xml':无法找到 checkstyle-suppressions.xml - 文档根元素“suppressions”,必须匹配 DOCTYPE 根“module”。”

你能告诉我如何解决这个错误吗?

以下是我使用的配置文件和抑制文件内容。我通过 Eclipse 菜单配置了抑制过滤器(windows > 首选项 > checkstyle > 配置 > 已知模块过滤器 > 抑制过滤器 > 添加)

=======================================

配置文件是

<?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>
4

1 回答 1

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

于 2013-07-24T19:09:14.067 回答