当所有代码都在 build.gradle 文件中时,我可以通过 gradle jooq 插件生成 JOOQ 代码。 但是我想把代码生成代码放在一个单独的文件中,叫做 jooq.gradle.
我得到以下错误
jooq.gradle':1:无法解析类 nu.studer.gradle.jooq.JooqEdition
这是我的build.gradle文件代码
buildscript {
repositories {
mavenCentral()
maven { url 'https://plugins.gradle.org/m2/' }
}
dependencies {
classpath 'nu.studer:gradle-jooq-plugin:8.2'
}
}
plugins {
id 'java'
id 'org.springframework.boot' version '3.0.5'
id 'io.spring.dependency-management' version '1.1.0'
id 'nu.studer.jooq' version '8.2'
}
repositories {
mavenCentral()
}
group = 'com.takeme'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-r2dbc:3.0.4'
implementation 'org.springframework.boot:spring-boot-starter-validation:3.0.4'
implementation 'org.springframework.boot:spring-boot-starter-webflux:3.0.4'
compileOnly 'org.projectlombok:lombok:1.18.26'
runtimeOnly 'org.postgresql:postgresql:42.5.4'
runtimeOnly 'org.postgresql:r2dbc-postgresql:1.0.1.RELEASE'
implementation 'org.jooq:jooq:3.18.2'
jooqGenerator 'org.postgresql:postgresql:42.5.4'
annotationProcessor 'org.projectlombok:lombok:1.18.26'
testImplementation 'org.springframework.boot:spring-boot-starter-test:3.0.4'
testImplementation 'io.projectreactor:reactor-test:3.5.4'
testImplementation 'org.postgresql:postgresql:42.5.4'
}
tasks.named('test') {
useJUnitPlatform()
}
apply from: 'jooq.gradle'
// removes jooq generation task dependency from compileJava
project.tasks.getByName('compileJava').dependsOn -= 'generateFinancedbJooqSchemaSource'
jooq.gradle
import nu.studer.gradle.jooq.JooqEdition
jooq {
version = "3.18.2"
edition = JooqEdition.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'
}
}
}
}
我猜这个问题与版本不匹配有关。
我尝试了 gradle task 命令但是得到了以下错误
jooq.gradle':1:无法解析类 nu.studer.gradle.jooq.JooqEdition