我在构建WAR文件时尝试设置活动弹簧配置文件。我用gradle bootWar
我设法找到适用于gradle bootRun -Pprofiles=prod
bootRun {
if (project.hasProperty('profiles')) {
environment SPRING_PROFILES_ACTIVE: profiles
}
}
但是
bootWar {
if (project.hasProperty('profiles')) {
environment SPRING_PROFILES_ACTIVE: profiles
}
}
给我这个错误
无法在任务':bootWar'上找到参数[{SPRING_PROFILES_ACTIVE = staging}]的方法环境()类型为org.springframework.boot.gradle.tasks.bundling.BootWar。
如何使其适用于WAR文件?
答案 0 :(得分:4)
(链接指的是一个演示项目,我现在正在尝试做同样的事情,但是有一些额外的复杂性,首先阅读属性等,并将不同的配置文件设置为活动状态:{{1 }},development
,testing
和其他一些SO帖子
假设我们要将有效个人资料设为production
。
在production
中,您可以创建一个task,使用spring.profiles.active
写下属性ant.propertyfile
,如下所示:
build.gradle
然后你告诉task setProductionConfig() {
group = "other"
description = "Sets the environment for production mode"
doFirst {
/*
notice the file location ("./build/resources/main/application.properties"),
it refers to the file processed and already in the build folder, ready
to be packed, if you use a different folder from `build`, put yours
here
*/
ant.propertyfile(file: "./build/resources/main/application.properties") {
entry(key: "spring.profiles.active", value: "production")
}
}
doLast {
// maybe put some notifications in console here
}
}
任务,它依赖于我们之前做的this任务:
bootWar