为每个Android Studio Gradle构建类型复制不同的配置文件

时间:2015-01-07 20:23:09

标签: android gradle android-studio

我正准备从ant转换为gradle作为我的Android构建系统。我无法弄清楚如何解决的一个问题是每种构建类型使用不同的配置文件。

在项目根目录中,有一个文件夹config,其中包含一个用于调试的文件和一个用于发布版本的文件。构建项目时,应将相应的文件复制到资源文件夹中。

Simplified build.gradle:

android {
    buildTypes {
        debug {
            minifyEnabled false
            // copy config/config_debug.xml to res/values/config.xml
        }
        release {
            minifyEnabled true
            ...
            // copy config/config_release.xml to res/values/config.xml
        }
    }

    ...
}

我尝试过不同的事情,比如

def configFile = 'XXX'
task copyConfigFileTask(type: Copy) {
    println "-> using config file $configFile"
    from 'config/$configFile'
    into 'res/values'
    rename {
        fileName -> 'config.xml'
    }
    outputs.upToDateWhen {
        false
    }
}

assembleDebug.dependsOn {
    copyConfigFileTask { configFile = 'config_release.xml' }
    copyConfigFileTask.execute()
}

但这确实不起作用。我无法想象Gradle这么简单和常见的任务是如此复杂,是吗?

感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

步骤1:将调试版本放在src/debug/res/values/config.xml

步骤2:将发布版本放入src/release/res/values/config.xml

步骤3:啤酒。

调试版本将引入文件的debug版本。发布版本将引入文件的release版本。没有麻烦,没有大惊小怪。