摇篮。 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协程)哪个更快?
- Gradle和Realm库的编译问题
- java.lang.NoClassDefFoundError:kotlin / jvm / internal / intrinsics in libgdx
- Kotlin kapt,gradle和ebean插件构建失败
- Gradle:具有依赖版本范围的maven-publish
- 从TeamCity 10中的多个Gradle构建步骤收集和聚合jacoco结果
- Android Studio 3.0 + Kotlin两个Gradle守护进程
- 我怎样才能把一个groovy任务gradle转换成Gradle Kotlin DSL来生成一个pom.xml?
- 如何在android中将方法调用注入到另一个方法中
- 有没有像Gradle中有效的pom(Maven)?