Flyway和Gradle Kotlin DSL

7

我正在从Gradle迁移到Gradle Kotlin DSL,并且有一个问题。

flyway {
    url = System.getenv ('DB_URL')
    user = System.getenv ('DB_USER')
    password = System.getenv ('DB_PASSWORD')
    baselineOnMigrate = true
    locations = ["filesystem: resources / db / migration"]
}

在Gradle中,你会在Kotlin DSL中看起来怎样呢?
2个回答

13

该代码块在Kotlin中与Groovy几乎完全相同,除了以下两个例外:

  • 字符串使用双引号而不是单引号。
  • locations属性的数组使用arrayOf而不是[...]

换句话说,它应该如下所示:

flyway {
    url = System.getenv("DB_URL")
    user = System.getenv("DB_USER")
    password = System.getenv("DB_PASSWORD")
    baselineOnMigrate = true
    locations = arrayOf("filesystem: resources / db / migration")
}

请记住,在构建文件中理解 flyway 函数(以及 IDE 为您提供可用选项的智能提示等)之前,您需要使用Gradle Plugins DSL 应用 Flyway 插件,如下所示在您的 build.gradle.kts 文件顶部:

plugins {
    id("org.flywaydb.flyway") version "5.2.4"
}

似乎对我不起作用,"flyway {...}" 仍然无法识别。编辑:必须更新“脚本上下文”(不管这是什么)。现在它可以工作了。 - spyro
1
对我不起作用。 - Joey

0

它的工作原理如下:

tasks.withType<org.flywaydb.gradle.task.FlywayMigrateTask> {
    url = System.getenv ('DB_URL')
    user = System.getenv ('DB_USER')
    password = System.getenv ('DB_PASSWORD')
    baselineOnMigrate = true
    locations = ["filesystem: resources / db / migration"]
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接