这里是google/exoplayer的代码段-用Groovy构建脚本编写。
// settings.gradle
gradle.ext.exoplayerRoot = 'path/to/exoplayer'
gradle.ext.exoplayerModulePrefix = 'exoplayer-'
apply from: new File(gradle.ext.exoplayerRoot, 'core_settings.gradle')
如何使用Kotlin DSL实现此目的?
我找不到任何有用的资源或文档。任何帮助将不胜感激。
答案 0 :(得分:1)
挖掘了一段时间后找到了解决方案。
在Groovy中,特征的动态实现-因此,即使类A没有在类定义中实现接口B,它也可能在以后的版本中实现。
我没有看到Gradle内部结构,因此无法正确解释,但似乎可以正常工作。希望这会有所帮助。
if (gradle is ExtensionAware) {
val extension = gradle as ExtensionAware
extension.extra["exoplayerRoot"] = "path/to/exoplayer"
extension.extra["exoplayerModulePrefix"] = "exoplayer-"
apply(from = File(extension.extra["exoplayerRoot"].toString(), "core_settings.gradle"))
}
对于使用ExoPlayer的用户,我创建了issue来为Kotlin DSL用户请求一些文档。