Java 9迁移javax.annotation

Sir*_*lot 3 java maven java-9 java-module

所以我尝试将我的项目迁移到Java 9,但这个过程似乎并不像我想象的那么容易.我不断得到一些关于隐形包的错误,我可以用我的pom中的以下参数修复:

<compilerArgs>
     <arg>--add-modules</arg>
     <arg>java.se.ee</arg>
</compilerArgs>
Run Code Online (Sandbox Code Playgroud)

但我仍然得到以下错误:

cannot find symbol
[ERROR]   symbol:   class Priority
[ERROR]   location: package javax.annotation
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激

Nic*_*lai 7

我不确定从何javax.annotation.Priority而来,但是类似于在Java 9上运行JSR 305的解决方案应该解决您的问题:而不是添加(不推荐使用的)Java EE模块java.xml.ws.annotation(通过添加间接执行)java.se.ee),您应该javax.annotation从外部工件添加包,即javax.annotation:javax.annotation-api.

如果您模块化您的代码,该解决方案将不再有效,您必须开始修补模块.或者,更好的是,摆脱需要非JDK类假装来自javajavax包的解决方案,因为这将始终导致问题.