You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置最新org.apache.cxf插件生成含javax而非jakarta导入的Java类?

配置Apache CXF XJC插件生成带javax导入的Java类(最新版本)

Apache CXF 4.x版本默认采用Jakarta EE命名空间(jakarta.xml.bind等),但无需降级到旧版本,通过以下配置即可生成带有javax导入语句的Java类,同时避免旧版本的JavaDoc转义缺陷:

修改插件配置

在原有插件配置基础上,添加javax版本的JAXB依赖,并指定XJC参数强制使用javax命名空间:

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-xjc-plugin</artifactId>
    <version>4.0.0</version>
    <!-- 引入javax版本的JAXB依赖,覆盖默认的Jakarta依赖 -->
    <dependencies>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.1</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.3.1</version>
        </dependency>
    </dependencies>
    <configuration>
        <extensions>
            <extension>org.apache.cxf.xjcplugins:cxf-xjc-dv:4.0.0</extension>
        </extensions>
        <!-- 配置XJC全局参数,启用扩展并确保生成代码使用javax -->
        <xjcArgs>
            <xjcArg>-extension</xjcArg>
            <xjcArg>-no-header</xjcArg>
        </xjcArgs>
    </configuration>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>xsdtojava</goal>
            </goals>
            <configuration>
                <sourceRoot>${basedir}/src/gen/java</sourceRoot>
                <xsdOptions>
                    <xsdOption>
                        <xsd>${basedir}/src/main/resources/xslt/MySchema.xsd</xsd>
                        <packagename>some.package</packagename>
                    </xsdOption>
                </xsdOptions>
            </configuration>
        </execution>
    </executions>
</plugin>

关键配置说明

  • javax依赖引入:通过dependencies块指定jaxb-api和jaxb-impl的javax版本,让代码生成时优先使用javax命名空间的类。
  • XJC参数配置:-extension参数启用XJC扩展(确保cxf-xjc-dv插件正常工作),-no-header可选,用于移除生成代码的版权注释。

这样配置后,生成的Java类会自动使用javax.xml.bind.*等导入语句,同时保留最新版本插件的JavaDoc生成能力,避免旧版本的转义缺陷。

内容的提问来源于stack exchange,提问作者makozaki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 13:25:22