使用bootWar设置活动弹簧配置文件

时间:2018-06-08 12:38:48

标签: spring-boot gradle war spring-profiles spring-boot-gradle-plugin

我在构建WAR文件时尝试设置活动弹簧配置文件。我用gradle bootWar

构建WAR文件

我设法找到适用于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文件?

1 个答案:

答案 0 :(得分:4)

(链接指的是一个演示项目,我现在正在尝试做同样的事情,但是有一些额外的复杂性,首先阅读属性等,并将不同的配置文件设置为活动状态:{{1 }},developmenttesting和其他一些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