源码编译前JOOQ代码生成

JOOQ Code Generation Before Source Code Compilation

我正在使用 JOOQ 代码生成工具为我的模式生成源代码 (MYSQL)。我想在每次编译我的项目时生成源代码。但是我无法做到这一点,因为当我 运行 代码生成 gradle 任务时,编译器开始抱怨已删除源代码的引用。

这是我所做的:-

  1. 创建了一个空 Spring 引导项目。
  2. 使用配置 xml(下面的 jooq.xml)生成源代码,如 this
  3. 使用 Gradle 任务触发代码生成。

Build.gradle

task generateJooqDatabaseSource(type: JavaExec) {
    classpath = sourceSets.main.runtimeClasspath
    main = 'org.jooq.util.GenerationTool'
    args = ['/jooq.xml']
    standardOutput = System.out
    errorOutput = System.err
}
  1. 使用生成的源代码并使用 JOOQ 编写 SQL。

到这里一切都很好。但是现在我不想将生成的 Java 类 推送到我的项目中。我希望每次编译我的项目时都创建它。

  1. 所以让我们删除生成的源代码并重新生成它(比如我的测试环境)

  2. 但是一旦我 运行 Gradle 任务 generateJooqDatabaseSource
    它开始抱怨生成的代码引用。

error: package autogenered.jooq.code.db.tables does not exist

import autogenered.jooq.code.db.tables.Author;

尝试用谷歌搜索问题并找到使用 flyway, suggested here

等插件的建议

但我真的不想再添加一个插件,如果没有它也能轻松实现。

PS:- 刚开始使用 Gradle, JOOQ 从几天开始,如果答案很明显,我们深表歉意。

在 build.gradle 中添加以下行已经为我完成了调整:

compileJava.dependsOn(generateJooqDatabaseSource)
generateJooqDatabaseSource.dependsOn = [processResources, processTestResources]

Intellij具体配置:-

添加了 gradle build task 每次我

时都会触发

make Project (Ctrl-F9)

Re-build Project: