从具有 jaxb2-maven-plugin 和 Maven 插件 jaxb2-maven-plugin 的 Highsource jaxb2-basics 插件的项目开始,我能够使用 Highsource “JAXB2 Simplify Plugin”。
但当时该项目仍在使用旧的 jaxb2-maven-plugin(2.4 版本)和针对 JAXB 2.2 的 Java 8。
现在我想在 Java 17 和 jaxb2-maven-plugin:3.1.0(针对 JAXB 3.0)中使用相同的 “JAXB2 Simplify Plugin”,但现在我们得到一个类 javax.xml.bind.JAXBException ,就像你一样可以想象,“JAXB2 Simplify Plugin”(2.0.9)不支持新的 Jakarta 命名空间。
问题:当我执行 Java 17/JAXB 3.0 时,“JAXB2 Simplify Plugin” 的新 groupId:artifactId 是什么。或者我需要切换到不同的 xjc 包装器。
(作为参考:我也在使用 “JAXB2 命名空间前缀插件”,它似乎确实有效,也许它不需要 javax/jakarta 命名空间?我还使用 Maven-plugin-plugin jaxb-lombok- yobibit 的插件。)
您可以按照迁移指南后续升级到v3 / v4并支持jakarta。
我认为你必须将神器
jaxb2-basics
更改为以下
<groupId>org.jvnet.jaxb</groupId>
<artifactId>jaxb-plugins</artifactId>
V3 版本针对 jaxb 3 api 和 jdk8 基线
V4 版本针对 jaxb 4 api 和 jdk11 基线
问候,
劳伦特