忽略findbugs警告

3 条评论

有个项目里使用了 thrift 生成的 java 代码,而很明显他的代码结构以及逻辑处理是不能完全符合公司的编程规范的,偏每天的构建中都会被 findbugs 插件检查出不少的中等级 bug 并且群发邮件,为了面子考虑,也得清理掉这些 bug,或者... 让findbugs 忽略这几个特定的对工程质量不会产生影响的“误报”。

整个 findbugs 的检查规则,是有要求的不能更改的,因此只能在具体的工程里对特定 bug 进行忽略处理,参考官方的文档,可以通过对某一个方法、某一个类或者某一个包添加注解来组织插件报告 bug。

首先是给工程添加对确 findbugs 注解所需要依赖的包,他们是 annotations.jar 和 jsr305.jar,可以从 FindBugs downloads 页面下载,或者确定 maven 仓库里包含了该制品,则在 工程 pom 内添加

  1. <dependency>
  2.   <groupId>findbugs</groupId>
  3.   <artifactId>annotations</artifactId>
  4.   <version>2.0.1</version>
  5. </dependency>
  6. <dependency>
  7.   <groupId>findbugs</groupId>
  8.   <artifactId>jsr305</artifactId>
  9.   <version>2.0.1</version>
  10. </dependency>

然后为了使注解对整个包有效,在需要忽略警告的包下创建 package-info.java 文件,可以使用eclipse的新建文件功能,手动输入文件名。

接下来在 package-info.java 这个类的包声明上面添加注解,比如

@edu.umd.cs.findbugs.annotations.SuppressWarnings(
    value="HE_EQUALS_USE_HASHCODE",
    justification="thrift autogen code")

其中 value 的取值为 findbugs 的错误报告中指出的错误类型。

相关日志 Relate Posts

收藏与分享 : Twitter | Facebook | 微博 | 人人 | Google+ | PDF

“忽略findbugs警告”3条留言

  1. FindBugs只能找Java的Bugs么=w= と水水表示十分希望功能强大而且广泛^^

    • @littlewater 不知道哦,只在java里有用到-.-

  2. 不知不觉国庆就结束了嘛- -

发表留言(Ctrl+Enter提交)