我有一个使用Gradle构建的Android应用程序,其中包含BuildTypes和Product Flavors(变体)。 例如,我可以运行以下命令构建特定的APK文件:
./gradlew testFlavor1Debug
./gradlew testFlavor2Debug
我必须在build.gradle中为每个变体创建一个自定义任务,例如:
./gradlew myCustomTaskFlavor1Debug
我已经为此创建了一个任务:
android.applicationVariants.all { variant ->
task ("myCustomTask${variant.name.capitalize()}") {
println "*** TEST ***"
println variant.name.capitalize()
}
}
我的问题是这个任务被称为“所有”变量,而不仅仅是我正在运行的那一个。
./gradlew myCustomTaskFlavor1Debug
*** TEST ***
Flavor1Debug
*** TEST ***
Flavor1Release
*** TEST ***
Flavor2Debug
*** TEST ***
Flavor2Release
期望输出:
./gradlew myCustomTaskFlavor1Debug
*** TEST ***
Flavor1Debug
我如何定义一个自定义任务,动态地、针对每个变体,并使用正确的变体来调用它?