Не удалось найти или загрузить основной класс 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 в основном возникает из-за несоответствия версий или не найденного пути.

Другие вопросы по тегам