【发布时间】:2015-05-22 18:47:02
【问题描述】:
我有一个使用 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
如何为每个变体定义一个动态的自定义任务,然后使用正确的变体调用它?
【问题讨论】:
标签: android groovy gradle android-productflavors