Как выполнить повторную генерацию кода Jooq? - PullRequest
0 голосов
/ 26 февраля 2020

Я использую 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/'
        }
    }
}

I ' м, используя https://github.com/etiennestuder/gradle-jooq-plugin

plugins {
    id 'nu.studer.jooq' version '4.1'
}

1 Ответ

0 голосов
/ 11 марта 2020

Я не уверен, что это правильный путь, но для меня это работает:

generateNavigoJooqSchemaSource {
    dependsOn cleanGenerateNavigoJooqSchemaSource
}

task buildJooq(dependsOn: generateNavigoJooqSchemaSource)

Итак, я создал имя задачи (buildJooq). Я помню, что это зависит от задачи генерации (generateNavigoJooqSchemaSource), и это зависит на чистую (cleanGenerateNavigoJooqSchemaSource) задачу.

Ранее я использовал этот код, который тоже работает:

tasks.named("generateNavigoJooqSchemaSource").configure {
    outputs.upToDateWhen { false }
}

Он также принудительно запускается каждый раз.

...