jooq - 如何执行 Jooq 代码重新生成?
问题描述
我正在使用 Jooq 和 gradle-jooq-plugin 进行代码生成。它工作正常,但是在添加表或删除列时更新生成的代码时遇到问题。我能够通过更改“packageName”配置参数来强制更新并构建一个新包。通过返回原始名称,代码按预期更新。
使用我的设置更改架构后重新生成代码的正确方法是什么?
jooq {
version = '3.13.1'
edition = 'OSS'
generateSchemaSourceOnCompilation = true
sample(sourceSets.main) {
jdbc {
driver = 'org.postgresql.Driver'
url = 'jdbc:postgresql://0.0.0.0:5432/victor'
user = 'postgres'
password = 'docker'
properties {
property {
key = 'ssl'
value = 'false'
}
}
}
generator {
name = 'org.jooq.codegen.DefaultGenerator'
strategy {
name = 'org.jooq.codegen.DefaultGeneratorStrategy'
}
database {
name = 'org.jooq.meta.postgres.PostgresDatabase'
inputSchema = 'public'
forcedTypes {
forcedType {
name = 'varchar'
expression = '.*'
types = 'INET'
}
}
}
generate {
relations = true
deprecated = false
records = true
immutablePojos = true
fluentSetters = true
}
target {
packageName = 'net.bravo.victor.model'
directory = 'src/'
}
}
}
我正在使用https://github.com/etiennestuder/gradle-jooq-plugin
plugins {
id 'nu.studer.jooq' version '4.1'
}
解决方案
我不确定这是否正确,但对我来说是这样的:
generateNavigoJooqSchemaSource {
dependsOn cleanGenerateNavigoJooqSchemaSource
}
task buildJooq(dependsOn: generateNavigoJooqSchemaSource)
所以我创建了任务名称(buildJooq),我记得这取决于生成任务(generateNavigoJooqSchemaSource)并且取决于清理(cleanGenerateNavigoJooqSchemaSource)任务。
以前我也使用过这个代码:
tasks.named("generateNavigoJooqSchemaSource").configure {
outputs.upToDateWhen { false }
}
它也强制每次运行。
推荐阅读
- spring - 如何将属性设置为与 thymeleaf 的会话?
- installation - 以非管理员身份运行 setup.exe 不会引发任何错误
- react-native - 如何在反应原生 webview 中启用浏览图像?
- php - 如何显示表格中的所有记录?
- phonegap-plugins - 如何为 webapp 构建 phonegap 应用程序?
- sql - PostgreSQL:如何将多行的值放在不同的列中,并将所有值合并到一行中?
- java - JavaFX KeyEvent - 是否可以获得未定义事件的更多信息?
- c# - 如何在 C# 中监控以太网接口的媒体感知
- jar - 使用exe4j将jar打包成exe时无法读取xml文件
- android - 使用 PixelCopy 在 DialogFragment 中复制缩放视图