拆分JOOQ代码生成至jooq.gradle遇JooqEdition类解析错误
问题原因
拆分jOOQ生成逻辑到独立jooq.gradle文件后出现unable to resolve class nu.studer.gradle.jooq.JooqEdition错误,并非版本不匹配导致,而是Gradle脚本类路径加载机制的问题——独立脚本默认无法直接访问plugins块引入的插件类。
解决方法
方法1:改用字符串指定jOOQ版本(推荐)
移除jooq.gradle中的枚举导入语句,直接用字符串代替枚举值,Gradle DSL会自动完成类型转换:
修改后的jooq.gradle代码:
jooq { version = "3.18.2" edition = 'OSS' financedb(sourceSets.main) { jdbc { driver = 'org.postgresql.Driver' url = 'jdbc:postgresql://localhost:15432/financedb' user = 'apiuser' password = 'takeme' properties { property { key = 'ssl' value = 'false' } } } generator { name = 'org.jooq.codegen.DefaultGenerator' strategy.name = 'org.jooq.codegen.DefaultGeneratorStrategy' database { name = 'org.jooq.meta.postgres.PostgresDatabase' inputSchema = 'financedb' } generate { routines = false keys = false indexes = false javaTimeTypes = false } target { packageName = 'com.takeme.jooq' directory = 'src/generated/jooq' } } } }
方法2:显式引入插件依赖(可选)
如果坚持使用枚举类,可在jooq.gradle开头添加buildscript块,确保脚本能访问到插件类:
buildscript { repositories { mavenCentral() maven { url 'https://plugins.gradle.org/m2/' } } dependencies { classpath 'nu.studer:gradle-jooq-plugin:8.2' } } import nu.studer.gradle.jooq.JooqEdition jooq { version = "3.18.2" edition = JooqEdition.OSS // 其余配置不变 }
额外优化建议
原build.gradle中的buildscript块可删除,因为plugins块已自动处理插件依赖,重复配置无必要。
内容的提问来源于stack exchange,提问作者atul kumar
相关产品推荐
相关产品推荐

