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

如何将jaxb-gradle-plugin迁移到Java 11支持的5.1.0新版本

JAXB Gradle配置迁移到Java11适配的5.1.0版本操作步骤

1. 清理原有旧配置

删除你当前写的自定义jaxb任务的全部代码,旧的Ant XJC调用方式依赖JDK内置的JAXB组件,Java11起JAXB已经从JDK默认移除,原有配置无法直接运行。

2. 引入5.1.0版本的Gradle JAXB插件

在build.gradle的插件声明块添加插件引用:

plugins {
    // 保留你原有的其他插件,比如java、java-library等
    id "io.freefair.jaxb" version "5.1.0"
}

3. 配置XJC生成参数,对齐原有逻辑

添加如下配置,完全复现你原有配置的生成规则:

// 保留你原有packageName、generatedSrcDir的赋值逻辑即可
ext {
    packageName = "你的实际生成包名" 
    generatedSrcDir = file("你原来的生成目录路径")
}

// 配置XJC生成规则
jaxb {
    xjc {
        sourceSets {
            main {
                xsd {
                    srcDir "src/main/resources/xsd"
                    include "*.xsd"
                }
            }
        }
        targetPackage = packageName
        outputDirectory = generatedSrcDir
        args = ["-no-header"]
    }
}

// 把生成的代码纳入编译路径,确保编译前自动执行生成逻辑
sourceSets.main.java.srcDir generatedSrcDir
compileJava.dependsOn xjc

4. 补充Java11必要的JAXB依赖

在dependencies块添加如下依赖:

// JAXB运行时依赖
implementation 'jakarta.xml.bind:jakarta.xml.bind-api:2.3.3'
implementation 'com.sun.xml.bind:jaxb-impl:2.3.3'
// XJC工具依赖
jaxb 'com.sun.xml.bind:jaxb-xjc:2.3.3'

5. 验证执行

运行./gradlew compileJava即可自动触发代码生成,生成的代码会输出到你指定的generatedSrcDir目录,同时自动纳入Java编译流程。

内容的提问来源于stack exchange,提问作者yurii.pitomets

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:45:03