jooq {
version = '3.15.+'
edition = nu.studer.gradle.jooq.JooqEdition.OSS // the default (can be omitted)
dependencies {
jooqGenerator 'org.postgresql:postgresql:42.2.14'
}
configurations {
if (referenceDBname.contains("DBNAME_NOT_SET")) {
println("HEADS UP: you will need to configure the reference database: " + referenceDBname)
}
else {
println("Generating jOOQ code from " + referenceDBname)
}
main { // name of the jOOQ configuration
generateSchemaSourceOnCompilation = ! referenceDBname == 'DBNAME_NOT_SET' // default (can be omitted)
generationTool
{
jdbc {
driver = 'org.postgresql.Driver'
user = 'postgres'
if (project.hasProperty("referenceDBpswd")) {
password = referenceDBpswd
}
else {
println "No dbpwd"
}
}
generator {
database {
// forcedTypes {
// forcedType {
// userType = 'java.util.LocalDateTime'
// converter = 'com.skatr.tsn.util.DateTimeConverter'
// includeExpression = '.*timestamp.*'
// }
// }
name = 'org.jooq.meta.postgres.PostgresDatabase'
schemaVersionProvider = 'select max(version::int) FROM public.flyway_schema_history'
includeRoutines = true
schemata {
schema {
inputSchema = 'public'
}
schema {
inputSchema = 'suas'
}
}
}
generate {
deprecated = false
fluentSetters = true
generatedAnnotation = true
generatedAnnotationType = 'DETECT_FROM_JDK'
globalRoutineReferences = true
immutablePojos = false
pojos = true
records = true
relations = true
routines = true
}
target {
packageName = 'com.skatr.db.gen'
directory = 'src/main/java'
}
}
}
}
}
}
tasks.named('generateJooq').configure {
// make jOOQ task participate in incremental builds (which is also a prerequisite for participating in build caching)
allInputsDeclared = true
// make jOOQ task participate in build caching
outputs.cacheIf { true }
}