我有一个android gradle项目,我有两个buildTypes:QA和prod。我想根据构建类型更改.properties文件中的属性。我还想根据buildType更改settings.gradle文件中的一个值。我是android和gradle的新手,请原谅我,如果这是一个非常基本的问题。
这是我的.properties文件:
build_number=3.1-SNAPSHOT
version_number=3.1.0
environment_name=prod //this needs to changed to environment_name=qa in qa environment
这是我的settings.gradle文件:
rootProject.name = 'tom-android-prod' //this needs to changed to rootProject.name = 'tom-android-qa' in qa environment
这是我的build.gradle文件:
apply plugin: 'com.android.application'
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.1'
}
}
android {
compileSdkVersion 21
buildToolsVersion "21.1.0"
defaultConfig {
multiDexEnabled true
}
dexOptions {
javaMaxHeapSize "4g"
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
}
configurations {
all*.exclude group: 'com.android.support', module: 'support-v4'
}
}
dependencies {
....
}
答案 0 :(得分:1)
我不确定你的目标是什么environment_name
因为它没有被使用,但想象你需要为特定的构建设置一个变量然后你可以做这样的事情:
ext {
environment_name = null
}
android {
// other stuff...
buildTypes {
qa {
project.ext.environment_name = "qa"
}
prod {
project.ext.environment_name = "prod"
}
}
}
// later you can use the variable like this
println "Hello variable: $project.ext.environment_name"
使用buildTypes不需要修改rootProject.name = 'tom-android'
。或者您可以以相同的方式使用productFlavors
闭包...取决于您为每个构建配置明确指定的内容。