gpt4 book ai didi

java - 如何使用 Java 11 中的 cxf-xjc-plugin 生成的类?

转载 作者:行者123 更新时间:2023-12-05 07:04:17 24 4
gpt4 key购买 nike

将 Apache cxf-xjc-plugin 与 Java 11 一起使用效果很好,我能够从 xsd 文件生成 Java 源代码。当尝试将这些 Java 类与 JAXB 一起使用时,问题就来了:Java 11 的 JAXB 的可用实现是 org.glassfish.jaxb:jaxb-runtimeorg.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 生成类注释?

最佳答案

您可以使用 maven-antrun-plugin 将生成的文件中的 javax.xml.bind 替换为 jakarta.xml.bind:

<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>fix-sources</id>
<phase>process-sources</phase>
<configuration>
<target>
<replace token="javax.xml.bind." value="jakarta.xml.bind."dir="${project.build.directory}/generated/src/main/java/path/to/sources">
<include name="**/*.java"/>
</replace>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>

关于java - 如何使用 Java 11 中的 cxf-xjc-plugin 生成的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62962169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com