【问题标题】:JOOQ Code Generation Before Source Code Compilation源代码编译前的 JOOQ 代码生成
【发布时间】:2015-12-13 23:00:29
【问题描述】:

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

这是我所做的:-

  1. 创建了一个空 Spring 引导项目。
  2. 使用 config 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
    它开始抱怨生成的代码引用。

错误:包 autogenred.jooq.code.db.tables 不存在

导入 autogenred.jooq.code.db.tables.Author;

尝试谷歌搜索问题并找到使用插件的建议,如flyway,建议here

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

PS:- 刚开始使用 Gradle,JOOQ 几天,如果答案很明显,请道歉。

【问题讨论】:

    标签: java spring-boot build.gradle jooq


    【解决方案1】:

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

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

    Intellij 具体配置:-

    添加 gradle build task 每次触发时触发

    制作项目 (Ctrl-F9)

    重建项目:

    【讨论】:

      猜你喜欢
      • 2018-03-29
      • 2015-12-13
      • 2020-07-27
      • 1970-01-01
      • 1970-01-01
      • 2014-09-09
      • 2017-12-03
      • 2017-08-13
      • 1970-01-01
      相关资源
      最近更新 更多