我最近从Java 8迁移到Java 11。
为jax.ws
我必须在我的pom.xml
中添加以下外部依赖性,因为它在Java 11中不再可用。但是,我遇到了一些争论,即不应使用com.sun.*
包类,并且如果可能。是sun.*
还是com.sun.*
?如果后者也成立,那么最好的替代方法是什么?
还有一件事,该依赖关系不是我的代码直接使用的,而是由我的其他依赖关系之一引用的。
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.2.10</version>
</dependency>
答案 0 :(得分:4)
某些com.sun.*
类是实际的外部API,可以使用。关键是检查官方Javadoc,以查看您要使用的类是否已列为API,并且未标记为@Deprecated
或此类标记。
这是要检查的官方javadoc页面: https://docs.oracle.com/en/java/javase/11/docs/api/index.html
通常,sun.*
API指早于反向DNS软件包命名约定的一些最古老的Java API(例如sun.misc.Unsafe
)。大多数原始sun.*
API都已被删除,升级为官方javax.*
API或重命名为更合适的com.sun.*
域。
使用com.sun.*
API并不是天生的错误,只要该API不是JDK内部的或标记为不推荐使用/删除的。