首页 > 解决方案 > 如何在我的 Kotlin Gradle 脚本中引用 Groovy 脚本插件提供的“ext”属性?

问题描述

我正在尝试迁移build.gradlebuild.gradle.kts并遇到此错误:

  Line 036: ext.pluginInfo.licenses = ["Apache-2.0"]
                ^ Unresolved reference: pluginInfo

原始build.gradle“包含”另一个脚本,然后pluginInfo从该脚本引用:

apply from: "rubyUtils.gradle"
pluginInfo.licenses = ["Apache-2.0"]

rubyUtils.gradle这是提供pluginInfo(我猜)的(缩短的)部分:

ext {
    pluginInfo = new PluginInfo()
}

这是我在 Kotlin 中提出的。这会导致开头提到的错误:

apply(from = "rubyUtils.gradle")
ext.pluginInfo.licenses = ["Apache-2.0"]

问题:

  1. 是否可以在 Kotlin 脚本中“导入”Groovy Gradle 脚本(在 Kotlin 脚本中应用 Groovy 脚本插件)?
  2. 如果可能:我如何正确引用pluginInfo
  3. 那整个“ext”到底是什么?:-)

标签: gradlegradle-kotlin-dsl

解决方案


  1. 是的,您可以在 Kotlin 中导入 Groovy 脚本,反之亦然。不幸的是,您可能会遇到类加载问题。
  2. val pluginInfo by extra是您根据文档查找的符号
  3. 简而言之,它们是一个在 Gradle 中存在已久的扩展系统,要小心使用。同样,请查看上面链接的文档以获取更多详细信息。

推荐阅读