繁体   English   中英

使用Gradle Kotlin DSL在settings.gradle.kts中设置gradle.ext

[英]Set gradle.ext in settings.gradle.kts with Gradle Kotlin DSL

这是google / exoplayer的代码段-用Groovy buildscript编写。

// settings.gradle
gradle.ext.exoplayerRoot = 'path/to/exoplayer'
gradle.ext.exoplayerModulePrefix = 'exoplayer-'
apply from: new File(gradle.ext.exoplayerRoot, 'core_settings.gradle')

如何使用Kotlin DSL做到这一点?

我找不到任何有用的资源或文档。 任何帮助,将不胜感激。

挖掘了一段时间后找到了解决方案。

在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的用户,我创建了一个问题 ,要求向Kotlin DSL用户请求一些文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM