我有一个使用 kotlin DSL 编写的多平台(kotlin)多项目 gradle 项目。忍受我。在 settings.gradle.kts 中,我有两种主要类型的包含帮助器来处理替代项目布局,一个常规模块(module/src)和一个多平台模块(module/js、module/common、module/jvm)。然后,我创建变量来保存我与这些助手一起使用的每个变量的列表,以按照我想要的方式包含所有内容。
我希望能够重用在我的 build.gradle.kts 文件的设置(列表)中定义的这些信息。
每次我尝试按照我在构建文件中的方式执行此操作时,都会收到相同的错误:
val test: List<String> by rootProject.extra(listOf("game", "spine"))
或者
val test: List<String> by extra(listOf("game", "spine"))
我得到的错误是:
Line 68: val test: List<String> by rootProject.extra(listOf("game", "spine"))
^ Expression 'extra' cannot be invoked as a function. The function 'invoke()' is not found
我的猜测是设置不支持扩展,所以即使设置this
中的类型为 Project(它是根项目),也没关系,你不能使用额外的。我能想到的唯一方法是在 gradle 属性文件中定义项目属性,但我不太热衷于此,因为这似乎不是要保留在那里的信息类型。
有什么东西可以在 buildscript 进行时延迟初始化扩展属性?