Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Gradle从Groovy转换为Kotlin DSL(用于liquibase Gradle插件)_Gradle_Kotlin_Groovy_Liquibase - Fatal编程技术网

将Gradle从Groovy转换为Kotlin DSL(用于liquibase Gradle插件)

将Gradle从Groovy转换为Kotlin DSL(用于liquibase Gradle插件),gradle,kotlin,groovy,liquibase,Gradle,Kotlin,Groovy,Liquibase,下面是我在Groovy DSL中使用liquibase Gradle插件的Gradle文件: buildscript { repositories { mavenCentral() } dependencies { classpath 'org.liquibase:liquibase-core:3.4.1' classpath 'org.liquibase:liquibase-gradle-plugin:2.0.1'

下面是我在Groovy DSL中使用liquibase Gradle插件的Gradle文件:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'org.liquibase:liquibase-core:3.4.1'
        classpath 'org.liquibase:liquibase-gradle-plugin:2.0.1'
        classpath 'org.postgresql:postgresql:42.2.5'
    }
}

apply plugin: 'liquibase'

repositories {
    mavenCentral()
}

dependencies {
    liquibaseRuntime 'org.liquibase:liquibase-core:3.4.1'
    liquibaseRuntime 'org.liquibase:liquibase-gradle-plugin:2.0.1'
    liquibaseRuntime 'org.postgresql:postgresql:42.2.5'
}

task('dev') {
    doLast {
        println "executing dev"
        liquibase {
            activities {
                main {
                    changeLogFile 'C:\\Users\\redacted\\IdeaProjects\\Food\\src\\main\\resources\\changelog.xml'
                    url 'jdbc:postgresql://localhost/mydb'
                    username 'postgres'
                    password 'redacted'
                }
            }
        }
        println "Done running dev."
    }
}
以下是我将文件转换为Kotlin DSL的尝试:

plugins {
    id("org.liquibase.gradle") version "2.0.1"
}

repositories {
    mavenCentral()
}

dependencies {
    compile("org.liquibase:liquibase-core:3.4.1")
    compile("org.liquibase:liquibase-gradle-plugin:2.0.1")
    compile("org.postgresql:postgresql:42.2.5")
    add("liquibaseRuntime", "org.liquibase:liquibase-core:3.4.1")
    add("liquibaseRuntime", "org.liquibase:liquibase-gradle-plugin:2.0.1")
    add("liquibaseRuntime", "org.postgresql:postgresql:42.2.5")
}

tasks.register("dev") {
    doLast {
        println("executing dev")
        "liquibase" {
            "activities" {
                "main" {
                    "changeLogFile"("C:\\Users\\redacted\\IdeaProjects\\Food\\src\\main\\resources\\changelog.xml")
                    "url"("jdbc:postgresql://localhost/mydb")
                    "username"("postgres")
                    "password"("redacted")
                }
            }
        }
        println("Done running dev")
    }
}

这一切都在
行“liquibase”
处分崩离析。我对Gradle不够熟悉-在groovy版本的文件中,
liquibase
是如何解决的?它的目的是什么?它是一个函数吗?如何在Kotlin版本中以相同的方式解决该问题?接下来,我还需要解析
活动
变更日志文件
url
用户名
,以及
密码

尝试将liquibase扩展的配置移动到顶层:

plugins {
  id("org.liquibase.gradle") version "2.0.1"
}

...

liquibase {
    activities.register("main") {
        this.arguments = mapOf(
                "logLevel" to "info",
                "changeLogFile" to "src/main/resources/db.changelog.xml",
                "url" to "jdbc:postgresql://localhost/dbName",
                "username" to "userName",
                "password" to "secret")
    }
}

tasks.register("dev") {
   // depend on the liquibase status task
   dependsOn("update")
}

我可能花了8个小时,花了三天的时间,试图自己解决这个问题。我需要记住更快地在stackoverflow上发布问题,而不是花这么长时间而一事无成。。。这很有效。