【发布时间】:2020-11-07 17:51:10
【问题描述】:
使用带有 Java 11 的 Apache cxf-xjc-plugin 可以正常工作,我能够从 xsd 文件生成 Java 源代码。尝试通过 JAXB 使用这些 Java 类时会出现问题:Java 11 的 JAXB 的可用实现是 org.glassfish.jaxb:jaxb-runtime 或 org.eclipse.persistence:org.eclipse.persistence.moxy,它们都将包中的所有类 javax.xml.bind 移动到 jakarta.xml.bind。这是一个问题,因为 cxf-xjc-plugin 生成的 Java 类是使用包 javax.xml.bind 中的注释进行注释的。
我认为有两种可能的解决方案:
- 是否有使用原始
javax.xml.bind包的 JAXB(针对 Java 11)的实现? - 有没有办法配置 cxf-xjc-plugin 使用包
jakarta.xml.bind生成类注释?
【问题讨论】:
-
当前解决方法如下所示:
find . -name '*.java' -print0 | xargs -0 perl -pi -e 's|\Qjavax.xml.bind\E|jakarta.xml.bind|g',使用 maven exec 插件运行。不太好
标签: java maven jaxb xjc cxf-xjc-plugin