我正在尝试在android.defaultConfig {}中配置参数resConfigs。这可以采用多个参数,例如resConfigs'en','fa'。现在我把它分开了,所以我分别为每种产品风味指定了resConfig。
android {
productFlavors.whenObjectAdded { flavor ->
def flavorData = rootProject.ext[flavor.name]
flavor.resConfigs flavorData.resConfig.split(",")
}
productFlavors {
customization{}
}
}
在一个单独的文件中我有
ext {
apply from: 'locales.gradle'
customization = [
resConfig = rootProject.ext.locales.main
]
}
现在我想在一个单独的文件(locales.gradle)中定义语言环境:
ext {
locales = [
main : "en,fr"
]
}
这非常有效...但是我想在构建应用程序之前动态生成locales.gradle文件,因此resConfig参数会按时获取。我想运行从另一个模块生成此文件的任务,该任务被执行,但遗憾的是,在产品风味被分配其参数之前不会。
我试过了:
prebuild.dependsOn ':mymodule:run'
commandLine 'cmd', '.\\gradlew', ':mymodule:run'
tasks.whenTaskAdded { task ->
if (task.name.contains('assembleDebugFull')) {
task.dependsOn ':mymodule:run'
}
}
在生成产品风味之前,没有任何内容执行模块任务。
如何在没有那么多麻烦的情况下正常地在gradle中运行任务。
Gradle是一个真正的痛苦......