带有 kotlin 的 gradle 插件 - 设置布尔扩展属性

Mat*_*nkt 6 gradle kotlin gradle-plugin

我正在尝试将 gradle 插件从 groovy 迁移到 kotlin。我有一个布尔值Property,我想在我的插件扩展中将其初始化为 false:

open class MyPluginExtension(project: Project) {

    val myBooleanProperty: Property<Boolean> = project.objects.property(Boolean::class.java)

    init {
        myBooleanProperty.set(false)
    }
}
Run Code Online (Sandbox Code Playgroud)

这失败了

java.lang.IllegalArgumentException: Cannot set the value of a property of type boolean using an instance of type java.lang.Boolean.
Run Code Online (Sandbox Code Playgroud)

异常被抛出org.gradle.api.internal.provider.DefaultPropertyState#set(T)

对此有什么想法吗?

Ram*_*man 1

Boolean::class.java在 Kotlin 中指的是原始类型。尝试指定对象类型:

val myBooleanProperty: Property<Boolean> = project.objects.property(Boolean::class.javaObjectType)
Run Code Online (Sandbox Code Playgroud)