无法使用 gradle-jooq-plugin-3.0.1、jooq-3.11.2 找到或加载主类 org.jooq.codegen.GenerationTool

Posted

技术标签:

【中文标题】无法使用 gradle-jooq-plugin-3.0.1、jooq-3.11.2 找到或加载主类 org.jooq.codegen.GenerationTool【英文标题】:Could not find or load main class org.jooq.codegen.GenerationTool with gradle-jooq-plugin-3.0.1, jooq-3.11.2 【发布时间】:2018-12-31 00:29:47 【问题描述】:

我有一个使用 gradle-jooq-plugin-3.0.1jooq-3.11.2 和 Spring Boot 1 的项目。当我尝试生成 JOOQ-Files 时,我收到以下错误消息:

> 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 中引入。

作为一种解决方法,您可以覆盖 Spring Boot 的 JOOQ 版本:

ext['jooq.version'] = '3.11.2'

我已经报告了一个问题:gradle-jooq-plugin/issues/81

【讨论】:

以上是关于无法使用 gradle-jooq-plugin-3.0.1、jooq-3.11.2 找到或加载主类 org.jooq.codegen.GenerationTool的主要内容,如果未能解决你的问题,请参考以下文章

无法访问您试图使用的功能所在的网络位置

无法使用 StorageClass 配置卷 - 无法获取存储帐户的存储密钥

Worklight Studio 和本地开发,有时无法使用 Java 类,有时无法使用 HTML 文件

ADB无法使用解决办法

Ubuntu 80端口无法使用-非root用户无法使用1024以下端口

无法在 SQL Server 视图中使用工作查询:“IS”无法识别“>”无法识别