所以,我想使用findbugs注释来抑制我们认为是正常代码的警告。我们需要在生产运行时部署annotation.jar和jsr305.jar吗?还是我们只需要将这些jar文件放在Eclipse项目和Unix构建环境的类路径中?
注解具有不同的保留策略: SOURCE - 不在类文件中,在编译器中被丢弃(在运行时不需要) CLASS - 在类文件中,但VM可以将其丢弃 RUNTIME - 在运行时反射可用 逻辑表明,SOURCE保留策略的注解在运行时不需要,CLASS应该不需要,而RUNTIME必须可用。 快速查看JSR 305注解表明它们使用RUNTIME保留策略(例子),这提示我这些JAR文件确实需要在运行时加载类以满足注解合同。 但我没有亲自测试过这一点。