簡體   English   中英

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

[英]How can one make use of classes generated by the cxf-xjc-plugin in Java 11?

使用 Apache cxf-xjc-plugin 和 Java 11 工作正常,我能夠從 xsd 文件生成 Java 源。 The problem comes when attempting to make use of those Java classes with JAXB: the available implementations of JAXB for Java 11 are org.glassfish.jaxb:jaxb-runtime or org.eclipse.persistence:org.eclipse.persistence.moxy , which both將 package javax.xml.bind中的所有類移動到jakarta.xml.bind 這是一個問題,因為 cxf-xjc-plugin 生成的 Java 類是使用 package javax.xml.bind中的注釋進行注釋的。

我腦海中存在兩種可能的解決方案:

  • 是否有使用原始javax.xml.bind package 的 JAXB(對於 Java 11)的實現?
  • 有沒有辦法將 cxf-xjc-plugin 配置為使用 package jakarta.xml.bind生成 class 注釋?

您可以使用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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM