1

我收到以下 DSL 脚本块的错误。

val DerbyDbDataFolder: File = file("DerbyDbData")
val DerbyLog: File = file("derby.log")

tasks {
    var cleanDerbyDbData by creating (Delete::class) {
        delete(DerbyDbDataFolder)
        delete(DerbyLog)
    }

    "clean" {
        dependsOn(cleanDerbyDbData)
    }
}

但我收到以下错误消息。

       var cleanDerbyDbData by creating (Delete::class) {
                               ^ Missing 'setValue(Nothing?, KProperty<*>, Delete)' method on delegate of type 'PolymorphicDomainObjectContainer<Delete>'

这是什么错误信息,我该如何解决?

4

1 回答 1

1

TLDR

定义cleanDerbyDbData为 aval而不是var

val DerbyDbDataFolder: File = file("DerbyDbData")
val DerbyLog: File = file("derby.log")

tasks {
    val cleanDerbyDbData by creating (Delete::class) {
        delete(DerbyDbDataFolder)
        delete(DerbyLog)
    }

    "clean" {
        dependsOn(cleanDerbyDbData)
    }
}

细节

cleanDerbyDbData是一个委托属性,如果它是一个var,右边的表达式by必须返回一个可变值。该函数返回的PolymorphicDomainObjectContainerDelegateProvidercreating()不提供任何设置器,这就是您看到的错误。

于 2018-05-30T07:00:03.587 回答