将 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 有一些特殊性,例如它现在包含以下神秘标签
这些可能来自哪里?
你的目标是基于 jaxb jakarta 的包吗?
我不太了解
jaxb2-maven-plugin
(可能是codehaus maven插件),但上面列出的依赖项是基于javax的包依赖项。
jaxb 依赖项在 v3 中进行了 jakarta 移动(基于 jakartaee9,基于 jdk8),然后在 v4 中他们放弃了 jdk8 支持(基于 jakartaee10 和 jdk11)。
如果你想用 jakarta 的 XML 注释生成 java 类,你应该看看是否有支持此功能的更新版本的插件。
另一种选择是您可以尝试使用 jaxb-tools maven 插件:从一个插件切换到另一个插件应该很容易,因为它们共享一些配置参数。
一个注释: