【问题标题】:PMD gets in the way of CheckStylePMD 妨碍了 CheckStyle
【发布时间】:2014-11-17 09:19:54
【问题描述】:

我开始使用 Checkstyle、PMD 和 FindBugs 等静态代码分析工具。 PMD 允许通过在行尾添加注释来将代码标记为已审核:

System.out.println("Test"); // NOPMD by edward on 9/23/14 10:22 AM

我真的不喜欢尾随 cmets,CheckStyle 也是如此(“不要使用尾随 cmets。”)。有没有办法告诉 PMD 审查了特定代码,而不使用尾随 cmets?

【问题讨论】:

    标签: static-analysis checkstyle pmd static-code-analysis


    【解决方案1】:

    您可以尝试将@SuppressWarnings("PMD") 添加到您收到警告的类或方法中。但是,这不是最好的解决方案,因为它会禁用标记目标上的所有警告。 Here, you can read more about suppressing.

    您可以尝试FaultHunter,它与 PMD 非常相似,并且可以按种类(例如 @SuppressWarnings("FH.UnusedConstructor"))甚至在方法级别抑制警告。

    【讨论】:

    • PMD 也有这个功能,你可以通过@SuppressWarnings("PMD.RuleName") 抑制违反规则的行为,也许在过去不是这样的。使用@SuppressWarnings 而不是// NOPMD 仍然是不好的做法,因为单行违规应该会影响整个方法(即,您想要抑制一个违规,但不是所有未来的同类违规)。
    【解决方案2】:

    解决此问题的另一种方法可能是将 Checkstyle 配置为从 TrailingComment 规则中例外,以抑制 cmets,如下所示:

    <module name="TrailingComment">
        <property name="legalComment" value="^NOPMD .*"/>
    </module>
    

    【讨论】:

      猜你喜欢
      • 2021-09-11
      • 2010-09-16
      • 2015-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多