Findbugs Annotations - 在我部署的代码中.jar和jsr305.jar吗?

因此,我想使用 findbugs 注释来抑制我们认为可以处理的代码的警告。

我们是需要将注释.jar和 jsr305.jar部署到我们的生产运行时中,还是只需要在 Eclipse 项目和 unix 构建环境的类路径中使用这些 jar?


答案 1

注释具有不同的保留策略

  • SOURCE - 不在类文件中,被编译器丢弃(在运行时不需要)
  • 类 - 在类文件中,但 VM 可以丢弃它们
  • 运行时 - 可用于运行时的反射

逻辑将指示运行时不需要 SOURCE 保留批注,CLASS 不需要,并且运行时必须可用。

快速浏览一下 JSR 305 注释表明它们使用 RUNTIME 保留策略(示例),这向我表明,在运行时加载类以满足注释协定确实需要这些 jar。

但是我自己还没有真正测试过这个。


答案 2

根据我的相关问题,如果这些注释在运行时不存在,您通常不会遇到任何问题,即使其中一些注释确实有.@Retention(RUNTIME)


推荐