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

jOOQ代码生成报visibilityModifier等无效内容错误如何解决

问题根因

报错中明确显示代码生成配置的校验逻辑使用的是jooq-codegen-3.14.0.xsd规则,说明nu.studer.jooq插件实际加载的jOOQ代码生成组件为3.14.x版本。你配置中用到的includeExcludePackageRoutines、visibilityModifier节点是jOOQ 3.15及以上版本才新增的配置项,不在3.14版本XSD的允许范围内,因此触发校验失败。
你之前观察到声明的3.16.6版本依赖被降级到3.14.15、手动指定3.14.15版本仍然报错,核心原因是jOOQ Gradle插件本身绑定了默认的jOOQ版本,不会自动引用你项目implementation配置中声明的jOOQ依赖,只要插件类路径、项目编译类路径中的jOOQ版本不统一,就会出现XSD版本不匹配的问题。

解决步骤
  • 第一步:在build.gradle文件最顶部添加buildscript配置,强制给jOOQ插件指定和你声明变量一致的jOOQ版本,覆盖插件默认自带的旧版本:
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jooq:jooq-codegen:${lib_jooq}"
        classpath "org.jooq:jooq-meta:${lib_jooq}"
    }
}

这里的${lib_jooq}直接复用你之前定义的版本变量即可,不需要硬编码版本号。

  • 第二步:添加全局依赖解析规则,强制所有模块的jOOQ依赖版本统一,禁止Gradle自动降级版本:
configurations.all {
    resolutionStrategy {
        force "org.jooq:jooq:${lib_jooq}"
        force "org.jooq:jooq-meta:${lib_jooq}"
        force "org.jooq:jooq-codegen:${lib_jooq}"
    }
}
  • 第三步:清理旧构建缓存,强制刷新依赖后重新执行代码生成任务,执行以下命令:
./gradlew clean generateMydbJooq --refresh-dependencies
验证方式

执行./gradlew dependencies命令查看依赖树,确认所有jOOQ相关依赖的解析版本和你声明的lib_jooq版本完全一致,不存在3.16.6 -> 3.14.15这类降级标记,即可确认版本统一完成,代码生成任务不会再抛出XSD校验异常。

不要尝试通过降级jOOQ版本到3.14.x解决问题,7.1.1版本的nu.studer.jooq插件原生兼容jOOQ 3.16.x,只要保证全链路jOOQ版本一致即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 22:57:23