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

在Eclipse 2024与JDK 22中,如何用JAXB编译XSD生成Java类?

解决Eclipse 2024+JDK22下用Maven JAXB生成Java类的步骤

首先修正你的pom.xml配置(当前存在版本兼容问题,JDK22需适配Jakarta EE版本的JAXB组件):

1. 调整依赖与插件版本

替换原pom中的依赖和插件配置为以下内容:

<dependencies>
    <!-- Jakarta JAXB API -->
    <dependency>
        <groupId>jakarta.xml.bind</groupId>
        <artifactId>jakarta.xml.bind-api</artifactId>
        <version>4.0.2</version>
    </dependency>
    <!-- 适配Jakarta的JAXB运行时,版本需与API一致 -->
    <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>4.0.4</version>
        <scope>runtime</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <!-- 使用适配JDK11+的jaxb2-maven-plugin版本 -->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jaxb2-maven-plugin</artifactId>
            <version>3.1.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>xjc</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <schemaDirectory>${basedir}/src/main/resources</schemaDirectory>
                <schemaFiles>personas.xsd</schemaFiles>
                <!-- 采用Maven标准生成源目录,Eclipse会自动识别为源路径 -->
                <outputDirectory>${project.build.directory}/generated-sources/jaxb</outputDirectory>
                <packageName>com.prueba.capaNegocio</packageName> <!-- 指定生成类的包结构 -->
            </configuration>
        </plugin>
    </plugins>
</build>

说明:

  • 原jaxb-runtime版本2.3.3属于Java EE时代,与Jakarta API 4.0.2不兼容,需替换为Jakarta版本的运行时
  • 升级插件到3.1.0版本,适配JDK11+及Jakarta EE规范
  • 新增packageName指定包结构,调整输出目录为Maven标准路径,避免后续手动配置源路径

2. 执行Maven生成命令

在Eclipse中有两种方式触发生成:

  • 方式一:通过Run As菜单
    右键项目 → Run As → Maven build...,在弹出窗口的Goals输入框填写jaxb2:xjc,点击Run。
  • 方式二:通过Maven视图
    打开Window → Show View → Other → 找到Maven → Maven Projects,展开项目后依次点击Plugins → jaxb2 → jaxb2:xjc,双击执行。

3. 验证生成结果

执行完成后,生成的Java类会出现在target/generated-sources/jaxb目录下,Eclipse会自动将该目录标记为源路径,可直接在项目中引用这些类。

关于右键XSD无JAXB生成选项的说明

JDK11及以后已移除内置JAXB模块,Eclipse自带的GUI生成工具依赖旧版JDK组件,而你的项目用Maven管理依赖,直接通过Maven插件执行生成是更适配当前环境的可靠方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:01:11