Java 9 迁移:javax.annotation

5

我试图将我的项目迁移到Java 9,但这个过程似乎并不像我想象的那么容易。我一直收到有关不可见包的错误提示,但是我可以通过在pom中使用以下参数来解决:

<compilerArgs>
     <arg>--add-modules</arg>
     <arg>java.se.ee</arg>
</compilerArgs>

但我仍然会收到以下错误:
cannot find symbol
[ERROR]   symbol:   class Priority
[ERROR]   location: package javax.annotation

非常感谢您的帮助

涉及IT技术的内容,请尽快翻译,谢谢!

1
你有阅读过Java 9:如何在运行时访问javax.annotation.Resource吗?如果是,请解释你尝试了什么其他方法,以及这不是重复的原因。 - Naman
1
javax.annotation.Priority 不在 Java SE 或 JDK 中。如果您的类路径上有 javax.annotation-api-1.3.1.jar(Maven 坐标:javax/annotation/javax.annotation-api/1.3.1),那么它应该可以工作? - Alan Bateman
1个回答

7
我不确定javax.annotation.Priority来自哪里,但是解决JSR 305在Java 9上运行的方法可以解决您的问题:不要添加(已弃用的)Java EE模块java.xml.ws.annotation(通过添加java.se.ee间接添加),而应该从外部artifact中添加javax.annotation包,即javax.annotation:javax.annotation-api。如果您将代码模块化,则该解决方案将不再起作用,您必须开始修补模块。或者,更好的做法是远离需要使用假装来自javajavax包的非JDK类的解决方案,因为这将始终引起问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接