0
私のapp.gradleには多くの味があります。私がexecするときgradlew assembleRelease
私はapp/build/intermediates/classes
のディレクトリにすべての味のクラスを見つけることができます。今、私はクラスを生成した後にクラスを修正したい(私の仕事をする)。どうやってやるの?すべてのフレーバーを変更する.class in gradle
私のタスク名はmです。
gradle.projectsEvaluated {
def buildTypes = android.buildTypes.collect { type -> type.name }
def productFlavors = android.productFlavors.collect { flavor -> flavor.name }
// When no product flavors defined, use empty
if (!productFlavors) {
productFlavors.add('')
}
productFlavors.each { productFlavorName ->
buildTypes.each { buildTypeName ->
def flavorNameCapitalized = "${productFlavorName.capitalize()}"
def buildNameCapitalized = "${buildTypeName.capitalize()}"
def targetName = "${flavorNameCapitalized}${buildNameCapitalized}"
def preTaskName = "compile${targetName}JavaWithJavac"
def nextTaskName = "compile${targetName}Ndk"
if (!isDebug(buildNameCapitalized.toString())) {
project.tasks.findByName("generate${targetName}Sources").doLast { //generate${targetName}Sources
println("projectsEvaluated flavorName: " + flavorNameCapitalized.toString())
println("projectsEvaluated buildName: " + buildNameCapitalized.toString())
project.ext.set("flavorName", flavorNameCapitalized.toString());
project.ext.set("buildName", buildNameCapitalized.toString());
}
m.dependsOn project.tasks.findByName(preTaskName)
project.tasks.findByName(nextTaskName).dependsOn m
}
}
}
}
しかし、私のタスクは1回だけ実行されます。私は動的なタスクで解決、最終的には