当前位置: 首页 > 知识库问答 >
问题:

如何在Eclipse中抑制特定的Checkstyle规则?

翟曦之
2023-03-14

我试图使用抑制过滤器,但发生意外错误。

以下是一条错误消息。

无法初始化模块SuppressionFilter-无法将模块SuppressionFilter中的属性“file”设置为“checkstyle suppressions.xml”:无法找到checkstyle-suppressions.xml-文档根元素“suppressions”,必须与DOCTYPE root“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个答案

连鸿
2023-03-14

您的抑制过滤器文件使用1.1语法,但声称使用较新的1.3语法。像这样交换标头:

<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN"
    "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">

此外,配置文件必须引用抑制滤波器。添加这样的模块定义(在最后一次结束之前添加

<module name="SuppressionFilter">
    <property name="file" value="${workspace_loc}/MyProject/suppressions.xml"/>
</module>

使用变量${workspace\u loc}可以确保即使在复制或重命名工作区时也能正常工作。

 类似资料:
  • 问题内容: 我在项目中配置了一个checkstyle验证规则,该规则禁止使用超过3个输入参数来定义类方法。该规则适用于我的类,但有时我必须扩展第三方类,而第三方类则不遵守此特定规则。 是否有可能指示“ checkstyle”某种方法应以静默方式忽略? 问题答案: 在http://checkstyle.sourceforge.net/config_filters.html#SuppressionCo

  • 我使用checkstyle API编写了几个自定义checkstyle规则。它们使用Maven运行良好(在我将新项目作为依赖项添加到checkstyle插件之后)。 null

  • 我花了一天的时间将所有PMD和Checkstyle规则迁移到新的Squid规则,因为PMD/Checkstyle规则被标记为不推荐使用。 规则:BadConstantName_S00115_Check/S00115 我们所有的枚举都是用camelCase而不是CONSTANT_NAME实现的,例如: 比: 规则:MethodCyclomatic复杂性 迁移后,该规则报告所有equals和hashc

  • 问题内容: 我有一个使用一些自动生成的源代码的Java项目。此源代码实际上是由命令行工具— Bison从特殊的源文件生成的。 我希望有一种方法,可以在需要时在Eclipse中按“ build”按钮时自动重新生成Java源代码。这可能吗?如果可以,怎么办? 通常,我会将其集成到项目Makefile中,但是当然这是Java,并且它不使用Makefile。我看过ant,但是ant似乎对传统的命令行工具怀

  • 问题内容: 我们总是被教导要确保在switch语句中使用 break 来避免掉线。 Java编译器会针对这些情况发出警告,以帮助我们避免犯小错误(而是严重错误)。 但是,我将案例检查作为功能使用(我们不必在这里进行介绍,但是它提供了一种非常优雅的解决方案)。 但是,编译器会吐出大量警告,这些警告可能会掩盖我需要了解的警告。我知道如何更改编译器以忽略所有掉线警告,但是我想在逐个方法的基础上实施此操作

  • 如何禁用这两个checkstyle规则文件,使它们不再困扰我?