如何在我的 Kotlin Gradle 脚本中引用 Groovy 脚本插件提供的 "ext" 属性?
How to reference "ext" property provided by a Groovy script plugin in my Kotlin Gradle script?
我正在尝试将 build.gradle
迁移到 build.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"]
问题:
- 是否可以在 Kotlin 脚本中“导入”Groovy Gradle 脚本(在 Kotlin 脚本中应用 Groovy 脚本插件)?
- 如果可能:如何正确引用
pluginInfo
?
- 那整个“分机”到底是什么东西? :-)
- 是的,您可以在 Kotlin 和 vice-versa 中导入 Groovy 脚本。不幸的是,您可能会遇到 class 加载问题。
val pluginInfo by extra
是您根据 the documentation 查找的符号
- 总之是Gradle长期存在的扩展系统,请谨慎使用。同样,请查看上面链接的文档以获取更多详细信息。
我正在尝试将 build.gradle
迁移到 build.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"]
问题:
- 是否可以在 Kotlin 脚本中“导入”Groovy Gradle 脚本(在 Kotlin 脚本中应用 Groovy 脚本插件)?
- 如果可能:如何正确引用
pluginInfo
? - 那整个“分机”到底是什么东西? :-)
- 是的,您可以在 Kotlin 和 vice-versa 中导入 Groovy 脚本。不幸的是,您可能会遇到 class 加载问题。
val pluginInfo by extra
是您根据 the documentation 查找的符号
- 总之是Gradle长期存在的扩展系统,请谨慎使用。同样,请查看上面链接的文档以获取更多详细信息。