I'am using jooq plugin with spring boot in gradle and i have a problem with h2 table. My settings.gradle is:
pluginManagement {
plugins {
id 'java'
id 'war'
id 'org.springframework.boot' version '2.7.17'
id 'io.spring.dependency-management' version '1.0.14.RELEASE'
}
}
i should use the 2.7.17 of spring boot to eliminate some cve in older spring boot library.
my build.gradle is
buildscript {
ext {
kotlinVersion = "1.7.10"
postgresqlDriverVersion = '42.4.2'
coroutineVersion = "1.6.4"
}
dependencies {
classpath 'org.owasp:dependency-check-gradle:8.4.0'
}
}
plugins {
id "org.jetbrains.kotlin.jvm" version "${kotlinVersion}"
id "org.jetbrains.kotlin.plugin.allopen" version "${kotlinVersion}"
id "org.jetbrains.kotlin.plugin.noarg" version "${kotlinVersion}"
id "org.jetbrains.kotlin.plugin.jpa" version "${kotlinVersion}"
id "org.jetbrains.kotlin.plugin.spring" version "${kotlinVersion}"
id 'org.springframework.boot'
id 'io.spring.dependency-management'
id "nu.studer.jooq" version "8.2.1"
id "org.liquibase.gradle" version "2.0.4"
id "idea"
id "eclipse"
id "com.palantir.docker" version "0.35.0"
}
allOpen {
annotation("javax.persistence.Entity")
annotation("javax.persistence.MappedSuperclass")
annotation("javax.persistence.Embeddable")
}
repositories {
mavenCentral()
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-batch")
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-cache")
implementation("org.springframework.boot:spring-boot-starter-webflux")
implementation 'org.jooq:jooq-meta-extensions:3.18.7'
runtimeOnly 'com.h2database:h2'
// systemd integration: notifies systemd that the application started successfully (or failed)
implementation("com.github.jpmsilva.jsystemd:jsystemd-spring-boot-starter:2.0.1")
// kotlin
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:${coroutineVersion}")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactive:${coroutineVersion}")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor:${coroutineVersion}")
implementation("io.github.microutils:kotlin-logging-jvm:3.0.0")
// Jackson Kotlin
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
implementation("javax.xml.bind:jaxb-api:2.3.1")
implementation("javax.activation:activation:1.1")
implementation("org.eclipse.persistence:org.eclipse.persistence.moxy:2.7.8")
// Cache provider
implementation("com.github.ben-manes.caffeine:caffeine:2.9.3")
// https://mvnrepository.com/artifact/org.hibernate/hibernate-validator
implementation("org.hibernate:hibernate-validator:6.1.6.Final")
// https://mvnrepository.com/artifact/org.hibernate/hibernate-validator-annotation-processor
implementation("org.hibernate:hibernate-validator-annotation-processor:6.1.6.Final")
implementation('commons-io:commons-io:2.11.0')
implementation("commons-codec:commons-codec:1.15")
// Postgresql driver
implementation("org.postgresql:postgresql:${postgresqlDriverVersion}")
//jooq
implementation("org.springframework.boot:spring-boot-starter-jooq")
jooqGenerator("org.postgresql:postgresql:${postgresqlDriverVersion}")
jooqGenerator("org.jooq:jooq-meta-extensions")
// liquibase
liquibaseRuntime("org.liquibase:liquibase-core:3.8.1")
liquibaseRuntime("org.liquibase:liquibase-groovy-dsl:2.1.1")
liquibaseRuntime("org.yaml:snakeyaml:1.15")
liquibaseRuntime("org.postgresql:postgresql:${postgresqlDriverVersion}")
liquibaseRuntime("ch.qos.logback:logback-core:1.2.3")
liquibaseRuntime("ch.qos.logback:logback-classic:1.2.3")
liquibaseRuntime("org.slf4j:slf4j-api:1.7.25")
liquibaseRuntime("javax.xml.bind:jaxb-api:2.3.1")
//embed the webapp in the fat JAR
runtimeOnly(project(":logs-frontend"))
// ------- TEST -------
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.springframework.batch:spring-batch-test")
testImplementation("io.mockk:mockk:1.7.15")
testImplementation("net.bytebuddy:byte-buddy:1.9.2")
testImplementation("net.bytebuddy:byte-buddy-agent:1.9.2")
testImplementation "org.junit.jupiter:junit-jupiter-api:5.3.1"
testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.3.1")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.3.1")
testRuntimeOnly("org.junit.vintage:junit-vintage-engine:5.3.1")
annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
}
compileJava.dependsOn(processResources)
compileKotlin {
kotlinOptions {
jvmTarget = "1.8"
}
}
compileTestKotlin {
kotlinOptions {
jvmTarget = "1.8"
}
}
tasks.named('check') {
dependsOn 'dependencyCheckAnalyze'
}
jooq {
// use jOOQ version defined in Spring Boot
version = dependencyManagement.importedProperties['jooq.version']
configurations {
main {
generationTool {
generator {
name = "org.jooq.codegen.KotlinGenerator"
database {
name = "org.jooq.meta.extensions.ddl.DDLDatabase"
properties {
property {
key = 'scripts'
value = 'src/main/resources/db/changelog/main/*.sql'
}
property {
key = 'sort'
value = 'alphanumeric'
}
property {
key = 'defaultNameCase'
value = 'lower'
}
}
includes = '.*'
excludes = 'INFORMATION_SCHEMA.DOMAINS'
}
generate {
fluentSetters = true
pojos = true
javaTimeTypes = true
}
target {
packageName = "fr.logs.jooq"
}
}
}
}
}
}
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 }
}
compileKotlin.dependsOn(tasks.named('generateJooq'))
bootJar {
dependsOn(":logs-frontend:webjar")
archiveFileName = "testjars-${rootProject.version}.jar"
exclude("**/application*.yaml", "**/*.jks")
launchScript()
}
bootJarMainClassName {
dependsOn(":logs-frontend:webjar")
}
apply plugin: 'org.owasp.dependencycheck'
dependencyCheck {
failOnError=true
failBuildOnCVSS = 1
}
but when try the command gradlew generateJooq i have the error below:
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Precision ("2147483647") must be between "1" and "1000000000" inclusive; SQL statement: select INFORMATION_SCHEMA.DOMAINS.DOMAIN_SCHEMA, INFORMATION_SCHEMA.DOMAINS.DOMAIN_NAME, INFORMATION_SCHEMA.DOMAINS.TYPE_NAME, INFORMATION_SCHEMA.DOMAINS.PRECISION, INFORMATION_SCHEMA. DOMAINS.SCALE, INFORMATION_SCHEMA.DOMAINS.IS_NULLABLE, INFORMATION_SCHEMA.DOMAINS.COLUMN_DEFAULT, INFORMATION_SCHEMA.DOMAINS.CHECK_CONSTRAINT from INFORMATION_SCHEMA.DOMAINS where (INF ORMATION_SCHEMA.DOMAINS.DOMAIN_SCHEMA in (cast(? as varchar(2147483647)), cast(? as varchar(2147483647))) and INFORMATION_SCHEMA.DOMAINS.TYPE_NAME <> 'ENUM') order by INFORMATION_SCHEM A.DOMAINS.DOMAIN_SCHEMA, INFORMATION_SCHEMA.DOMAINS.DOMAIN_NAME [90150-214] at org.h2.message.DbException.getJdbcSQLException(DbException.java:632) at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) at org.h2.message.DbException.get(DbException.java:223) at org.h2.command.Parser.getInvalidPrecisionException(Parser.java:6325) at org.h2.command.Parser.readIfDataType1(Parser.java:6285) at org.h2.command.Parser.readIfDataType(Parser.java:6087) at org.h2.command.Parser.parseColumnWithType(Parser.java:6069) at org.h2.command.Parser.readTermWithoutIdentifier(Parser.java:5107) at org.h2.command.Parser.readTerm(Parser.java:4901) at org.h2.command.Parser.readFactor(Parser.java:3398) at org.h2.command.Parser.readSum(Parser.java:3385) at org.h2.command.Parser.readConcat(Parser.java:3350) at org.h2.command.Parser.readCondition(Parser.java:3132) at org.h2.command.Parser.readExpression(Parser.java:3053) at org.h2.command.Parser.readInPredicate(Parser.java:3277) at org.h2.command.Parser.readConditionRightHandSide(Parser.java:3167) at org.h2.command.Parser.readCondition(Parser.java:3144) at org.h2.command.Parser.readExpression(Parser.java:3053) at org.h2.command.Parser.readTermWithoutIdentifier(Parser.java:4990) at org.h2.command.Parser.readTerm(Parser.java:4901) at org.h2.command.Parser.readFactor(Parser.java:3398) at org.h2.command.Parser.readSum(Parser.java:3385) at org.h2.command.Parser.readConcat(Parser.java:3350) at org.h2.command.Parser.readCondition(Parser.java:3132) at org.h2.command.Parser.readExpressionWithGlobalConditions(Parser.java:3043) at org.h2.command.Parser.parseSelect(Parser.java:2881) at org.h2.command.Parser.parseQueryPrimary(Parser.java:2762) at org.h2.command.Parser.parseQueryTerm(Parser.java:2633) at org.h2.command.Parser.parseQueryExpressionBody(Parser.java:2612) at org.h2.command.Parser.parseQueryExpressionBodyAndEndOfQuery(Parser.java:2605) at org.h2.command.Parser.parseQueryExpression(Parser.java:2598) at org.h2.command.Parser.parseQuery(Parser.java:2567) at org.h2.command.Parser.parsePrepared(Parser.java:724) at org.h2.command.Parser.parse(Parser.java:689) at org.h2.command.Parser.parse(Parser.java:661) at org.h2.command.Parser.prepareCommand(Parser.java:569) at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:631) at org.h2.engine.SessionLocal.prepareCommand(SessionLocal.java:554) at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1116) at org.h2.jdbc.JdbcPreparedStatement.(JdbcPreparedStatement.java:92) at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:288) at org.jooq.impl.ProviderEnabledConnection.prepareStatement(ProviderEnabledConnection.java:109) at org.jooq.impl.SettingsEnabledConnection.prepareStatement(SettingsEnabledConnection.java:73) at org.jooq.impl.AbstractResultQuery.prepare(AbstractResultQuery.java:262) at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:342) ... 15 more
But it i don't have the problem with the 2.6.0 spring boot version.
Does anyone has an idea? Thank's!