【问题标题】:How do I Suppress Warnings in CheckStyle? [duplicate]如何抑制 CheckStyle 中的警告? [复制]
【发布时间】:2011-04-03 17:03:12
【问题描述】:

我正在为 Eclipse 使用 CheckStyle 插件。

在 99% 的情况下,我很擅长发现我不打算做的事情,但实际上有 1% 的时间我确实打算故意违反规则,我想让 CheckStyle 知道它不需要关注标记警告。

示例:缺少 Javadoc 注释规则。大多数时候,我希望在我的方法上使用 Javadoc cmets。但是,一个方法如:

public boolean isValid() {
  return valid;
}

可能没有人也可以。

有没有类似@SuppressWarnings 注释的东西可以用来将特定的CheckStyle 规则违规标记为可接受?也许是某种特殊格式的评论?我不想禁用规则,我只想忽略特定违规行为。

(我意识到在这种情况下我可以只写 Javadoc 注释,但在其他情况下修复规则违规并不是那么简单)。

【问题讨论】:

标签: java eclipse checkstyle


【解决方案1】:

看起来很乏味,但需要明确的 XML 配置才能忽略它。您可能可以通过使用适用于 Eclipse 或 Netbeans 的 Checkstyle 插件找到一个 GUI。我在 Checkstyle configuration 页面上找到的示例。

<?xml version="1.0"?>

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

<suppressions>
    <suppress checks="JavadocStyleCheck"
              files="AbstractComplexityCheck.java"
              lines="82,108-122"/>
    <suppress checks="MagicNumberCheck"
              files="JavadocStyleCheck.java"
              lines="221"/>
</suppressions>

【讨论】:

  • 我建议不要使用这种方法,因为随后对引用的类进行更改会更改行号,从而导致维护噩梦。最好更改我们想要捕获或不全局捕获的警告的设置,或使用 CHECKSTYLE:OFF / CHECKSTYLE:ON cmets。
【解决方案2】:

Synthesis 指向 Checkstyle 配置页面。略读了一下,我发现SuppressWithNearbyCommentFilter 看起来很有希望,除非我误解了它的用途......

【讨论】:

    【解决方案3】:

    PhiLho 是对的 - SuppressWithNearbyCommentFilter 或 SuppressionCommentFilter 可以提供帮助。我配置了 SuppressionCommentFilter 并添加 cmets "CHECKSTYLE:OFF" 和 "CHECKSTYLE:ON" 将暂时禁用检查样式。

    【讨论】:

    • 您能添加一个如何使用这些 cmets 的示例吗?他们只是进入标准的单行 cmets,他们可以使用多行 cmets,还是混合和匹配 OFF 和 ON 注释的注释类型?
    • 啊,没关系,我找到了这个答案:stackoverflow.com/a/4023351/110255
    猜你喜欢
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 2011-03-18
    相关资源
    最近更新 更多