【问题标题】:Is there a way to suppress FindBugs from generating warnings on code generated by static weaving?有没有办法抑制 FindBugs 对静态编织生成的代码产生警告?
【发布时间】:2013-12-06 03:50:31
【问题描述】:

我认为 FindBugs (2.0.2) 和 Sonar (3.7.3) 对通过 EclipseLink (2.5.1) JPA 实体的静态编织生成的代码的误报。具体来说,我看到多次出现

ES_COMPARING_PARAMETER_STRING_WITH_EQ
Comparison of String parameter using == or != in com.test.domain.MyEntity._persistence_set(String, Object)

URV_INHERITED_METHOD_WITH_RELATED_TYPES
Inherited method com.test.domain.MyEntity._persistence_get(String) returns more specific type of object than declared

有没有办法消除 EclipseLink 生成的代码的这些警告,而不必全局禁用规则或完全排除对实体的分析?

【问题讨论】:

    标签: jpa eclipselink sonarqube findbugs


    【解决方案1】:

    非常好的问题!由于您的问题源于 FindBugs,您可以使用 FindBugs exclusion filters 来解决此问题。特别是,看看<Method> 排除。您可以在实体类中指定一个与您的 getter 和 setter 的方法名称匹配的正则表达式,例如

    <Method name="~_persistence_[gs]et" />
    

    所有形式的 FindBugs 都可以使用这样的过滤器文件,包括 Eclipse 插件和 SonarQube。例如,使用 SonarQube ant 任务,您可以将属性 sonar.findbugs.excludesFilters 设置为 FindBugs 排除文件的绝对路径。

    【讨论】:

    • 谢谢,这很好用。看起来 Sonar 4 有更多选项可以从控制台管理排除/模式,但没有像这样细化。
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2011-02-11
      • 1970-01-01
      • 1970-01-01
      • 2022-08-04
      • 2010-09-16
      • 2020-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多