Не удалось найти или загрузить основной класс org.jooq.codegen.GenerationTool с помощью gradle-jooq-plugin-3.0.1, jooq-3.11.2
У меня есть проект, использующий 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'
}
}
}
}
Есть идеи? Согласно gradle-jooq-plugin/README.md это должно работать.
1 ответ
Плагин, кажется, игнорирует настроенную версию (3.11.2) и использует версию из Spring Boot (3.9.6). org.jooq.codegen.GenerationTool
был представлен только с JOOQ-3.11.0.
В качестве обходного пути вы можете переопределить JOOQ-версию Spring Boot:
ext['jooq.version'] = '3.11.2'
Я сообщил о проблеме для этого: gradle-jooq-plugin / Issues / 81
Я не уверен, что это работает для вас или нет, но в моем случае это работает,
- Поместите правильную зависимость от версии в свой pom.xml.
- Поместите банку зависимостей более тонкой версии в свою папку, где существует ваш XML-файл.
- В файле.xml проверьте версию jooq-codgen в теге конфигурации.
- В файле.xml проверьте драйвер конфигурации базы данных и учетные данные.
- В файле.xml тег генератора содержит правильное значение и имя схемы. Пример,
<name>org.jooq.meta.mysql.MySQLDatabase</name>
- В файле.xml проверьте целевой тег, содержащий правильное значение пакета и путь к каталогу.
Теперь для выполнения. В ubuntu создайте файл sh с помощью команды
java -cp jooq-3.11.6.jar:jooq-meta-3.11.6.jar:jooq-codegen-3.11.6.jar:[JDBC-драйвер].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-драйвер].jar;mysql-connector-java-8.0.12.jar;. org.jooq.codegen.GenerationTool database.xml
Пользователи Ubuntu, пожалуйста, проверьте права доступа, когда-нибудь это также создаст проблему.
Проблема с JOOQ в основном возникает из-за несоответствия версий или не найденного пути.