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

使用Gradle Kotlin DSL配置Jooq时‘Unresolved reference: jdbc’问题排查

解决Gradle jOOQ插件配置中‘Unresolved reference: jdbc’错误

你遇到的这个错误主要来自两个核心问题:一是gradle-jooq-plugin 3.x版本的配置DSL结构发生了变更,不再支持直接在jooq根块下定义jdbc节点;二是你的JDBC驱动依赖配置存在坐标和版本不一致的问题。下面是具体的修复方案:

1. 调整jOOQ配置的结构

插件3.x版本要求JDBC相关配置必须嵌套在generators -> 具体generator的配置块内,而不是直接放在jooq根节点下。你需要重构jooq块的结构,通过generators节点来包裹JDBC和代码生成的相关配置。

2. 修正JDBC驱动依赖

你当前的jooqRuntime依赖使用了过时的groupId(postgresql:postgresql),这是早期的Maven坐标,现在应该和compile依赖保持一致,使用org.postgresql:postgresql;同时建议驱动版本和compile里的42.2.7统一,避免版本冲突导致的潜在问题。

修改后的完整build.gradle.kts配置

import nu.studer.gradle.jooq.JooqEdition
plugins {
    kotlin("jvm")
    id("nu.studer.jooq") version "3.0.3"
    id("java-library")
}
dependencies {
    implementation(kotlin("stdlib"))
    implementation("org.postgresql:postgresql:42.2.7")
    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.2")
    implementation("org.slf4j:slf4j-api:1.7.28")
    implementation("ch.qos.logback:logback-classic:1.2.3")
    implementation("ch.qos.logback:logback-core:1.2.3")
    implementation("org.jooq:jooq:3.11.11") // 显式指定版本,与jooq块内的version保持一致
    jooqRuntime("org.postgresql:postgresql:42.2.7") // 使用正确的groupId,统一驱动版本
}
jooq {
    version = "3.11.11"
    edition = JooqEdition.OSS

    generators {
        create("main") { // 创建名为main的generator配置实例
            jdbc {
                driver = "org.postgresql.Driver"
                url = "jdbc:postgresql://localhost:5432/postgres"
                user = "postgres"
                password = "postgres"
            }
            generate {
                // 可自定义代码生成规则,例如:
                // targetDirectory = "src/main/kotlin"
                // targetPackage = "com.yourteam.generated.jooq"
                // includes = ".*" // 生成所有表的代码
            }
        }
    }
}

额外补充说明

  • 我把compile替换成了implementation,这是Gradle Java插件3.4版本起推荐的依赖配置,功能与compile一致,但更符合现代Gradle的依赖管理规范。
  • 显式指定org.jooq:jooq的版本,确保和你声明的jOOQ版本完全匹配,避免隐式依赖带来的版本冲突。
  • 如果需要自定义代码生成的输出目录、包名或筛选生成的表,可以在generate块中添加对应配置项。

内容的提问来源于stack exchange,提问作者epi.log

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:31:47