将我的 jaxb 代码生成器迁移到 jakarta 后,未编组的 xml 有所不同

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

将 jaxb 依赖项迁移到使用 jakarta 的依赖项后,如下所示:Java 11 包 javax.xml.bind 不存在我观察到一些奇怪的事情。

我正在使用

jaxb2-maven-plugin
version 2.5.0
,它有一个依赖项
xercesImpl 2.12.2

pom.xml
直接依赖于
jakarta.activation-api 1.2.2
jakarta.xml.bind-api 2.3.3
和传递 依赖于
org.glassfish.jaxb jaxb-runtime 2.3.8

当我将

jakarta.xml.bind-api
升级到
3.0.1
并尝试升级 glassfish 实现时,一切似乎都正确生成,但生成的 xml 与之前有很大不同。

生成的 XML 有一些特殊性,例如它现在包含以下神秘标签

  • 任意
  • 名字
  • 附加名称
  • 其他属性
  • 声明类型
  • 范围

这些可能来自哪里?

java jaxb jaxb2-maven-plugin jakarta-migration
1个回答
0
投票

你的目标是基于 jaxb jakarta 的包吗?

我不太了解

jaxb2-maven-plugin
(可能是codehaus maven插件),但上面列出的依赖项是基于javax的包依赖项。

jaxb 依赖项在 v3 中进行了 jakarta 移动(基于 jakartaee9,基于 jdk8),然后在 v4 中他们放弃了 jdk8 支持(基于 jakartaee10 和 jdk11)。

如果你想用 jakarta 的 XML 注释生成 java 类,你应该看看是否有支持此功能的更新版本的插件。

另一种选择是您可以尝试使用 jaxb-tools maven 插件:从一个插件切换到另一个插件应该很容易,因为它们共享一些配置参数。

一个注释:

  • v2 适用于 jaxb 2.3
  • v3 是 fof jaxb 3
  • v4 适用于 jaxb 4,需要 jdk11 作为最小运行时间
© www.soinside.com 2019 - 2024. All rights reserved.