所以我有一个小应用程序(不在 Web 容器中运行),它使用一些在 jdk8 上运行的 javax.* 类。 是时候升级到jdk17了。 所以我想,很简单,我下载 jakarta ee 9(或 10)参考实现 .jar 文件,将代码 javax. 切换到 jakarta.* 命名空间,然后我们就可以开始了。 似乎我找不到在哪里可以下载 jakarta ee 9(或 10)的参考实现 *jar 文件。 很明显我错过了一些东西。 有人可以指导我找到解决这个问题的好方法吗?
我主要使用 Maven 来处理我的依赖项,但希望这至少有一点帮助。
对于 jaxb 3.x,您可以使用以下 api 依赖项
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>3.0.1</version>
</dependency>
然后您可以使用以下方法来实现。
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>3.0.0</version>
</dependency>
如果您需要从 xsd 生成类,您可以使用 jaxb2-maven-plugin 3.1.0。它似乎只依赖于 jakarta.xml.bind-api,同时将其余部分作为嵌套依赖项包含在内。
<!--
by default searches schemas from src/main/xsd
and binding files from src/main/xjb
-->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>xjc</id>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<packageName>com.example.api</packageName>
</configuration>
</plugin>
不确定 javax.activation
这与问题没有直接关系,但对于想要将包名称
javax
更新为 jakarta
的人来说可能会有所帮助。如果你的项目很大,包含很多类,那么用替换器转换它们会很无聊。相反,您有 2 个选择:
您可以在这篇文章中找到该脚本。
但是,你必须修改shell脚本来覆盖所有的包。
Refactor > Migrate Packages and Classes > Java EE to Jakarta EE
按照上述路径找到该选项。