【问题标题】:jOOQ Gradle plugin does not update generated filesjOOQ Gradle 插件不更新生成的文件
【发布时间】:2016-01-28 23:20:57
【问题描述】:

出于某种原因,我必须手动删除生成的文件夹并运行 gradle 任务以获取更新的 POJO。这是我的设置、预期行为还是错误?我的设置如下:

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'
      }
    }
  }
}

【问题讨论】:

  • 如何生成 jOOQ 文件?请提供来自build.gradle 的相应代码。
  • @Opal 配置已添加。
  • 最好将src/main/generated 文件夹添加到不要混合生成文件和源文件。运行clean 任务时,应将提到的文件夹添加为源集并删除。
  • 我与 Gradle 并不亲密。你介意在这里放一些代码吗?

标签: java gradle jooq


【解决方案1】:

当前,当您生成文件时,它们会添加到src/main/java 文件夹下。这不是一个好主意,因为您混合了源文件和生成的文件。最好添加一个单独的文件夹src/main/generated,并通过以下方式修改build.gradle

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

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

并改变:

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

这样您可以轻松管理生成的类。当clean任务运行时,所有的类都会被自动删除。

您还需要定义compileJava 和生成器任务之间的依赖关系。可以通过以下方式完成:

compileJava.dependsOn YOUR_GENERATOR_TASK_NAME

jOOQ 不会自动删除文件。

【讨论】:

  • 完美!按描述工作。
猜你喜欢
  • 2018-02-10
  • 2018-12-27
  • 2014-10-09
  • 2014-10-29
  • 2020-07-18
  • 2020-07-10
  • 2018-03-20
  • 1970-01-01
  • 2018-12-18
相关资源
最近更新 更多