简体   繁体   English

jOOQ Gradle插件不会更新生成的文件

[英]jOOQ Gradle plugin does not update generated files

For some reason I have to manually delete generated folder and run gradle task to get updated POJOs. 出于某种原因,我必须手动删除生成的文件夹并运行gradle任务以获取更新的POJO。 Is this my setup, expected behavior or a bug? 这是我的设置,预期行为还是错误? My setup is as follows: 我的设置如下:

jooq {
  library(sourceSets.main) {
    jdbc {
      driver = 'com.mysql.jdbc.Driver'
      url = 'jdbc:mysql://localhost:3306/library'
      user = 'library'
      password = '123'
      schema = 'library'
    }
    generator {
      name = 'org.jooq.util.DefaultGenerator'
      strategy {
        name = 'org.jooq.util.DefaultGeneratorStrategy'
      }
      database {
        name = 'org.jooq.util.mysql.MySQLDatabase'
        inputSchema = 'library'
      }
      generate {
        daos = true
      }
      target {
        packageName = 'com.example.library.db'
        directory = 'src/main/java'
      }
    }
  }
}

Currently when you generated the files they're added under src/main/java folder. 目前,当您生成文件时,它们将添加到src/main/java文件夹下。 This is not a good idea since you have mixed source and generated files. 这不是一个好主意,因为您有混合的源文件和生成的文件。 It's much better to add a separate folder src/main/generated and modify the build.gradle in the following way: 最好添加一个单独的文件夹src/main/generated并以下列方式修改build.gradle

def generatedDir = 'src/main/generated'
sourceSets {
    main {
        java {
            srcDirs += [generatedDir]
        }
    }
}

clean.doLast {
   project.file(generatedDir).deleteDir()
}

and change: 并改变:

target {
   packageName = 'com.example.library.db'
   directory = generatedDir
}

This way you can easily manage the generated classes. 这样您就可以轻松管理生成的类。 All the classes will be removed automatically when clean task is run. 运行clean任务时,将自动删除所有类。

You also need to define a dependency between compileJava and the generator task. 您还需要在compileJava和生成器任务之间定义依赖关系。 It can be done in the following way: 它可以通过以下方式完成:

compileJava.dependsOn YOUR_GENERATOR_TASK_NAME

jOOQ will not delete the files automatically. jOOQ不会自动删除文件。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 JOOQ Maven插件-生成的源文件的编码 - JOOQ Maven plugin - encoding of generated source files 与Gradle和Kotlin的JOOQ不生成文件 - JOOQ with Gradle and Kotlin do not generate files 更新Jooq的自动生成的类 - Update Jooq's auto generated classes jOOQ,Java - 如何导入生成的java文件? - jOOQ, Java - how to import generated java files? jOOQ-jOOQ是否支持定义文件或创建SQL创建脚本? - jOOQ - Does jOOQ support definition files or creation of SQL creation scripts? gradle生成的文件无法编译 - gradle generated files fail to compile 如何告诉netbeans gradle插件将生成的源文件添加到Source Packages? - How do I tell the netbeans gradle plugin to add generated source files to Source Packages? 用于JOOQ检查器的Gradle注解处理器 - Gradle annotationProcessor for JOOQ checker 如何使用 jOOQ gradle 插件将 postgres 中的 bigint[] 字段转换为 class 字段 - How to convert bigint[] field from postgres into class field with a jOOQ gradle plugin 使用 gradle-jooq-plugin 的 Liquibase 运行 generateJooq 任务返回 java.lang.NoClassDefFoundError: liquibase/resource/FileSystemResourceAccessor - Runnin generateJooq task with Liquibase of gradle-jooq-plugin returns java.lang.NoClassDefFoundError: liquibase/resource/FileSystemResourceAccessor
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM