摇篮。 Kotlin – 是否可以创建动态(“飞行”)任务?
我是一个Android开发人员。 结果是由Gradle编写。 我在Groovy上的Gradle DSL上编写了许多任务。
有时我需要动态创建Gradle任务(“即时”)。 这里的例子:
task installDebugFlavors() { android.applicationVariants.all { v -> if (v.name.endsWith('Debug')) { String name = v.name.capitalize() dependsOn "install$name" } } }
该任务使用所有的口味组合产生新的任务。 因此,Gradle脚本非常小,易于理解和易于支持。 这是非常强大的Groovy功能。 而且它经常帮助我。
在新版本的Gradle中引入了新的语言–Kotlin。
我的问题是:是否可以在Kotlin上编写相同的任务(用于动态创建其他任务)?
是的,您可以动态创建任务,并通过Gradle Kotlin DSL中的(String)名称引用其他任务。
tasks { "installDebugFlavors" { android.applicationVariants.forEach { v -> if (v.name.endsWith("Debug")) { val name = v.name.capitalize() dependsOn("install$name") } } } }
- AndroidStudio / Kotlin – 未解决的参考:ReadWriteProperty – Kotlin版本1.0.0-beta-1038
- 协程(goroutines和kotlin协程)哪个更快?
- android – 运行应用程序失败,错误“com.android.builder.dexing.DexArchiveMergerException:无法合并dex’
- 在eclipse上通过gradle设置Kotlin
- 用Android Studio 3.0 Canary 4构建错误
- 如何在gradle中插入想法插件为Kotlin生成适当的项目配置?
- Kotlin建立在travis-CI上但没有测试运行
- Android Studio“没有发现测试”
- android gradle build:生成的类列表不存在
- Android,Gradle:为什么(第二次)“gradlew build –build-cache”不能马上完成?
- 将Groovy gradle移植到Kotlin gradle(ext缺少或闭包转换,不确定)