Tur*_*ura 8 groovy android gradle kotlin
这是来自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')
Run Code Online (Sandbox Code Playgroud)
如何使用 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"))
}
Run Code Online (Sandbox Code Playgroud)
对于那些使用 ExoPlayer 的人,我创建了一个问题,为 Kotlin DSL 用户请求一些文档。
| 归档时间: |
|
| 查看次数: |
2365 次 |
| 最近记录: |