Java 使用Gradle的开发和生产环境的不同参数
在使用androidstudioide配置gradlebuild的androidjava项目中,我想让变量根据构建环境而变化 例如,如果有一个Java 使用Gradle的开发和生产环境的不同参数,java,android,gradle,android-studio,android-gradle-plugin,Java,Android,Gradle,Android Studio,Android Gradle Plugin,在使用androidstudioide配置gradlebuild的androidjava项目中,我想让变量根据构建环境而变化 例如,如果有一个公共静态final boolean USE\u LOCAL\u BACKEND=false在Utils.java中,生产应该始终具有false值,开发可能希望具有true以使用本地服务器进行调试 我不是Gradle的专家,我希望您能提供一份详细的指南,告诉我如何配置我的项目,使其在每个环境中都有两个不同的属性文件,每个文件都有相同的键,但值不同。到目前为止
公共静态final boolean USE\u LOCAL\u BACKEND=false
在Utils.java中,生产应该始终具有false
值,开发可能希望具有true
以使用本地服务器进行调试
我不是Gradle的专家,我希望您能提供一份详细的指南,告诉我如何配置我的项目,使其在每个环境中都有两个不同的
属性
文件,每个文件都有相同的键,但值不同。到目前为止,最简单的解决方案是将使用本地后端
移动到BuildConfig
:
android {
// other stuff here
buildTypes {
debug {
buildConfigField "String", "SERVER_URL", '"http://test.this-is-so-fake.com"'
}
release {
buildConfigField "String", "SERVER_URL", '"http://prod.this-is-so-fake.com"'
}
mezzanine.initWith(buildTypes.release)
mezzanine {
buildConfigField "String", "SERVER_URL", '"http://stage.this-is-so-fake.com"'
}
}
}
这里,我在
BuildConfig
上为三种构建类型(debug
,release
,以及一种自定义的mezzanine
类型)定义一个SERVER\u URL
String
字段。您可以对布尔值使用本地后端执行相同的操作。然后,您可以在Java代码中将其称为BuildConfig。使用\u LOCAL\u BACKEND
应该会对您有所帮助。很酷,只是为了澄清一下,此代码位于build.gradle中,并自动生成到BuildConfig.Java类中。谢谢@科夫:是的,很抱歉我的回答太仓促了。