我想根据不同的环境区分我的依赖关系。我没有获得正确的env值以及正确的类别依赖条件。
def profile = project.hasProperty("spring.profiles.active") ?
project.property("spring.profiles.active") :
System.getProperty("spring.profiles.active", 'local')
bootRun {
systemProperty "spring.profiles.active", profile
}
我希望输出如下所示,但配置文件变量未获得正确的配置文件值
dependencies{
if(profile == "dev"){
compile('com.oracle:ojdbc6:+')
}
if(profile == "prod"){
compile('commons-dbcp:commons-dbcp:1.4')
}}
答案 0 :(得分:0)
您可以通过为每个配置文件使用build_[profile].gradle
来进行不同的操作,其中 [profile] 是启动应用程序示例时作为参数传递的配置文件(通过 -P < / strong>):
./gradlew -Pprod bootRun
因此,假设您有2个环境产品和本地产品,在您的build.gradle
中,您将有:
def currentProfile;
if (project.hasProperty('prod')) {
currentProfile = 'production';
apply from: rootProject.file('gradle/build_prod.gradle');
} else if (project.hasProperty('local')) {
currentProfile = 'local';
apply from: rootProject.file('gradle/build_local.gradle');
} else {
currentProfile = 'default profile';
apply from: rootProject.file('gradle/build_default.gradle');
}
println 'Current profile: "' + currentProfile + '"
您还应该有2个gradle文件; build_prod.gradle
和build_local.gradle
,在那里您可以根据需要具有不同的依赖关系和配置。