将 JAXB2 Simplify 插件与 java 17 和 codehaus 的 jaxb2-maven-plugin 一起使用

Using the JAXB2 Simplify Plugin together with Java 17 and jaxb2-maven-plugin of codehaus

提问人:gkephorus 提问时间:11/2/2023 更新时间:11/13/2023 访问量:88

问:

从一个具有 jaxb2-maven-plugin 和 Maven-plugin jaxb2-maven-plugin 的 Highsource jaxb2-basics 插件的项目开始,我能够使用 Highsource“JAXB2 简化插件”。

但这是在项目仍在使用旧的 jaxb2-maven-plugin(2.4 版本)和面向 JAXB 2.2 的 Java 8 的时候。

现在我想在 Java 17 中使用相同的“JAXB2 简化插件”和 jaxb2-maven-plugin:3.1.0(面向 JAXB 3.0),但现在我们得到一个类 javax.xml.bind.JAXBException,正如你可以想象的那样,“JAXB2 简化插件”(2.0.9)不支持新的 Jakarta 命名空间。

问:当我使用 Java 17/JAXB 3.0 时,“JAXB2 简化插件”的新 groupId:artifactId 是什么?或者我需要切换到不同的 xjc 包装器。

(作为参考:我也在使用“JAXB2 命名空间前缀插件”,它似乎确实有效,也许它不需要 javax/jakarta 命名空间?我还使用 yobibit 的 Maven-plugin-plugin jaxb-lombok-plugin。

maven xjc jaxb2-basics

评论


答:

1赞 Laurent Schoelens 11/11/2023 #1

您可以按照迁移指南跟进升级到 v3 / v4 并支持 jakarta。

我认为您必须将工件更改为以下内容jaxb2-basics

<groupId>org.jvnet.jaxb</groupId>
<artifactId>jaxb-plugins</artifactId>

V3 版本以 jaxb 3 api 和 jdk8 基线为目标

V4 版本以 jaxb 4 api 和 jdk11 基线为目标

评论

0赞 gkephorus 11/17/2023
感谢您将我指向 Wiki 中的迁移页面。这些非常有帮助。
0赞 Laurent Schoelens 11/17/2023
不客气,他们需要避免混淆