【问题标题】:Flyway in Kotlin Gradle - cannot import FlywayMigrateTaskKotlin Gradle 中的 Flyway - 无法导入 FlywayMigrateTask
【发布时间】:2022-08-11 03:39:39
【问题描述】:

我需要在两个不同的 shcemas 上运行两个不同的 flyway 迁移,每个都有自己的用户帐户。 根据 Flyway 文档,我只需为每个使用FlywayMigrateTask 的连接设置一个自定义任务。从使用默认(Groovy)gradle的官方文档中:

task migrateDatabase1(type: org.flywaydb.gradle.task.FlywayMigrateTask) {
    url = \'jdbc:h2:mem:mydb1\'
    user = \'myUsr1\'
    password = \'mySecretPwd1\'
}

task migrateDatabase2(type: org.flywaydb.gradle.task.FlywayMigrateTask) {
    url = \'jdbc:h2:mem:mydb2\'
    user = \'myUsr2\'
    password = \'mySecretPwd2\'
}

我尝试在 Kotlin gradle (kts) 中执行此操作,但我的项目无法解决对 FlywayMigrateTask 的引用,即使我的 External Libraties 中有它:

我如何注册任务:

tasks.register(
    \"flywayTesting\", 
    type = org.flywaydb.gradle.task.FlywayMigrateTask::class.java) {
    // Details hidden
}

我能够解析org.flywaydb.gradle.task 包,但不能解析任务文件夹中的FlywayMigrateTask 类。 我究竟做错了什么?

我的 gradle 设置的亮点:

plugins {
    kotlin(\"jvm\") version \"1.6.0\"
    id(\"org.flywaydb.flyway\") version \"8.5.1\"
}

repositories {
    mavenCentral()
}

tasks.withType<Wrapper> {
    gradleVersion = \"6.8.2\"
    distributionType = Wrapper.DistributionType.BIN
}

dependencies {
    implementation(\"org.flywaydb:flyway-core:8.5.1\")
    implementation(\"org.flywaydb:flyway-gradle-plugin:8.5.0\")
}

kotlin {
    sourceSets[\"main\"].apply {
        kotlin.srcDir(\"src/main/kotlin\")
    }
}
  • 从命令行运行./gradlew flywayTesting 时会出现什么错误?除了 IntelliJ 之外,您是否看到任何错误?

标签: kotlin gradle database-migration flyway gradle-kotlin-dsl


【解决方案1】:
task<org.flywaydb.gradle.task.FlywayMigrateTask>("migrateDatabase1") {
url = 'jdbc:h2:mem:mydb1'
    user = 'myUsr1'
    password = 'mySecretPwd1'
}

task<org.flywaydb.gradle.task.FlywayMigrateTask>("migrateDatabase2") {
    url = 'jdbc:h2:mem:mydb2'
    user = 'myUsr2'
    password = 'mySecretPwd2'
}

【讨论】:

    猜你喜欢
    • 2016-05-22
    • 2018-05-30
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多