从javax迁移到jakarta ee

问题描述 投票:0回答:2

所以我有一个小应用程序(不在 Web 容器中运行),它使用一些在 jdk8 上运行的 javax.* 类。 是时候升级到jdk17了。 所以我想,很简单,我下载 jakarta ee 9(或 10)参考实现 .jar 文件,将代码 javax. 切换到 jakarta.* 命名空间,然后我们就可以开始了。 似乎我找不到在哪里可以下载 jakarta ee 9(或 10)的参考实现 *jar 文件。 很明显我错过了一些东西。 有人可以指导我找到解决这个问题的好方法吗?

jakarta-ee
2个回答
2
投票

我主要使用 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


0
投票

这与问题没有直接关系,但对于想要将包名称

javax
更新为
jakarta
的人来说可能会有所帮助。如果你的项目很大,包含很多类,那么用替换器转换它们会很无聊。相反,您有 2 个选择:

  1. 在项目根文件夹中执行 shell 脚本,让脚本自动为您转换。

您可以在这篇文章中找到该脚本。

但是,你必须修改shell脚本来覆盖所有的包。

  1. 如果你使用的是Intellij IDEA,那么你很幸运,有一个按钮可以转换所有包。

Refactor > Migrate Packages and Classes > Java EE to Jakarta EE

按照上述路径找到该选项。

© www.soinside.com 2019 - 2024. All rights reserved.