JSR-305注释替代Java 9

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (38)

到目前为止,我们一直在使用Findbugs JSR-305注释(com.google.code.findbugs:jsr305),包括工具支持(Sonar,Eclipse,Findbugs等)在内的所有工作都正常。

然而,我们的理解是,Java 9中的Jigsaw将打破JSR-305注释(两个模块中的一个包是不允许的)。这在JavaOne 2015上得到了证实.Oracle的推理是JSR-305从未发生,JSR-250将不得不认可这些注释。

我们正在寻找能够在Java 8和Java 9中使用的JSR-305批注的替代品。如果历史记录是指导,那么Java 9 GA和Java 8 EOL之间的时间会相当短,我们希望解决我们的任何不兼容问题代码提前。从理论上讲,我们可以升级JDK的注释模块,但是在我们的工具链中这样做似乎有很多工作要做。

提问于
用户回答回答于

确实,两个模块通常不能在同一个软件包中定义类型。直到最近,放在jsr305.jarJDK 9构建的类路径上都没有任何作用:JAR文件定义了javax.annotation包中的类型, 但是该包是在平台的内置 java.annotations.common模块中定义的,而后者优先。

jsr305.jar但是,部分原因在于广泛使用,并且为了使现有应用程序服务器更容易迁移到JDK 9,我们最近更改了默认的根模块集以排除注释模块等等。把jsr305.jarJDK的9类路径上现在工作外的开箱。详情请 参阅JEP 261

扫码关注云+社区