簡體   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