为PRO版本设置jooq生成器3.17.5的问题



我目前有一个问题,我不能得到jooq生成器运行。作为模板,我使用了Etienne Studer的例子(参见https://github.com/etiennestuder/gradle-jooq-plugin/tree/master/example/configure_toolchain_gradle_dsl)。这意味着我正在使用Gradle和Java 17。

来自jooq的付费Pro库(我使用本地postgresql DB)位于项目的子文件夹(lib)中(参见build中的第11行)。gradle文件。我的gradle文件是这样的:

import nu.studer.gradle.jooq.JooqEdition
plugins {
id 'nu.studer.jooq' version '8.0'
id 'java'
}
repositories {
mavenCentral()
flatDir {
dirs 'lib'
}
}
dependencies {
jooqGenerator 'org.postgresql:postgresql:42.5.0'
}
jooq {
version = '3.17.5'
edition = JooqEdition.PRO
configurations {
main {
generationTool {
logging = org.jooq.meta.jaxb.Logging.TRACE
jdbc {
driver = 'org.postgresql.Driver'
url = 'jdbc:postgresql://localhost:5432/postgres'
user = 'postgres'
password = 'blabla'
}
generator {
name = 'org.jooq.codegen.DefaultGenerator'
database {
name = 'org.jooq.meta.postgres.PostgresDatabase'
inputSchema = 'public'
}
generate {
deprecated = false
records = false
immutablePojos = false
fluentSetters = true
}
target {
packageName = 'solar.deinland.importxml.postgresql'
}
strategy.name = 'org.jooq.codegen.DefaultGeneratorStrategy'
}
}
}
}
}

运行gradle任务生成代码时得到的错误信息是:

Error: Could not initialize main class org.jooq.codegen.GenerationTool
Reason: java.lang.NoClassDefFoundError: org/jooq/meta/SchemaVersionProvider
FAILURE: Build failed with an exception.

上面显示的gradle任务运行良好,只要我把版本改为JooqEdition.OSS。如果我想使用付费库,我就会遇到上述错误。

是否可以将库放在项目子文件夹中并将其引用为flatdir?或者我是否需要设置本地maven存储库?

谢谢你的帮助。

干杯克努特

通过运行" maven_install ";与jooq库一起提供的批处理脚本。该脚本将提供的库注册到本地maven实例。替换条目

flatDir {
dirs 'lib'
}

mavenLocal()

让gradle有机会在本地maven存储库中找到它们。

最新更新