Gradle动态产品风味参数

时间:2016-01-22 14:44:20

标签: android android-studio gradle android-gradle build.gradle

我正在尝试在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是一个真正的痛苦......

0 个答案:

没有答案
相关问题