我有一个使用gradle-jooq-plugin-3.0.1
,jooq-3.11.2
和Spring Boot 1的项目。当我尝试生成JOOQ文件时,收到以下错误消息:
> Task :generateSampleJooqSchemaSource FAILED
Error: Could not find or load main class org.jooq.codegen.GenerationTool
这是一个缩小的构建文件:
plugins {
id 'nu.studer.jooq' version '3.0.1'
id 'org.springframework.boot' version '1.5.14.RELEASE'
id 'java'
}
repositories {
mavenCentral()
}
dependencies {
jooqRuntime 'com.h2database:h2:1.4.177'
compile 'org.jooq:jooq'
}
bootRepackage.enabled = false
jooq {
version = '3.11.2'
sample(sourceSets.main) {
jdbc {
driver = 'org.h2.Driver'
url = 'jdbc:h2:~/test-gradle'
user = 'sa'
password = ''
}
generator {
database {}
target {
packageName = 'org.jooq.example.gradle.db'
}
}
}
}
有什么想法吗?根据{{3}},这应该可以正常工作。
答案 0 :(得分:6)
该插件似乎忽略了配置的版本(3.11.2),并使用了Spring Boot(3.9.6)中的版本。 org.jooq.codegen.GenerationTool
仅在JOOQ-3.11.0中引入。
作为解决方法,您可以覆盖Spring Boot的JOOQ版本:
ext['jooq.version'] = '3.11.2'
我已经报告了一个问题:gradle-jooq-plugin/issues/81
答案 1 :(得分:0)
我不确定它是否对您有用,但就我而言,它是否有用
<name>org.jooq.meta.mysql.MySQLDatabase</name>
现在可以执行了, 在ubuntu中,使用命令创建sh文件,
java -cp jooq-3.11.6.jar:jooq-meta-3.11.6.jar:jooq-codegen-3.11.6.jar:[JDBC-driver] .jar:mysql-connector-java-8.0。 12.jar: org.jooq.codegen.GenerationTool database.xml
对于Windows,使用命令创建bat文件
java -cp jooq-3.11.6.jar; jooq-meta-3.11.6.jar; jooq-codegen-3.11.6.jar; [JDBC-driver] .jar; mysql-connector-java-8.0。 12.jar ;. org.jooq.codegen.GenerationTool database.xml
Ubuntu用户请检查访问权限一次,这也会造成问题。
JOOQ问题主要是由于版本不匹配或找不到路径。