Tengo una aplicación de primavera-arranque que Gradle usos, Postgres y jooq. Quiero generador de código de Jooq para crear las clases para mí, pero durante gradle clean build
consigo un error con respecto al conductor
java.lang.ClassNotFoundException: org.postgresql.Driver
No entiendo por qué no se encuentra el controlador. Estos son algunos de los aspectos relevantes de mi gradle.build
archivo:
plugins {
id "org.springframework.boot" version "2.0.2.RELEASE"
id 'nu.studer.jooq' version '3.0.1'
}
I utilizando una versión 2.0.2.RELEASE
de arranque de la primavera. Estos son mis dependencias:
dependencies {
implementation "org.springframework.boot:spring-boot-starter-web:$SPRING_VERSION"
implementation "org.springframework.boot:spring-boot-starter-actuator:$SPRING_VERSION"
implementation "org.springframework.boot:spring-boot-starter-jooq:$SPRING_VERSION"
implementation "org.springframework.boot:spring-boot-starter-data-jpa:$SPRING_VERSION"
implementation "org.springframework.boot:spring-boot-starter-jooq:$SPRING_VERSION"
implementation 'org.postgresql:postgresql:42.2.5'
}
Esta es la Jooq config que tengo en mi archivo Gradle
jooq {
myApp(sourceSets.main) {
jdbc {
driver = 'org.postgresql.Driver'
url = "jdbc:postgresql://${db_host}:${db_port}/${db_name}"
user = "${db_username}"
password = "${db_password}"
schema = 'public'
}
generator {
name = 'org.jooq.util.DefaultGenerator'
strategy {
name = 'org.jooq.util.DefaultGeneratorStrategy'
}
database {
name = 'org.jooq.util.postgres.PostgresDatabase'
inputSchema = 'public'
}
generate {
relations = true
deprecated = false
records = true
immutablePojos = false
fluentSetters = true
}
target {
packageName = 'com.mycompany.mayapp.model.jooq'
directory = 'out/production/classes/generated'
}
}
}
}```
El Gradle-jooq-plugin necesita dependencias en una configuración separada. Se utiliza la jooqRuntime
configuración para detectar las dependencias necesarias, que no utiliza el compile
o implementation
configuración.
Añadiendo lo siguiente a sus dependencias debe hacer el truco
jooqRuntime 'org.postgresql:postgresql:42.2.5'
De esta manera el plugin recoge el conductor y generará las clases del modelo.