Установить активный профиль пружины с помощью bootWar - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь установить активный профиль пружины при создании файла WAR.Я создаю файл 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
  }
}

Дает мнеэта ошибка

Не удалось найти метод environment () для аргументов [{SPRING_PROFILES_ACTIVE = staging}] для задачи ': bootWar' типа org.springframework.boot.gradle.tasks.bundling.BootWar.

Как мне заставить работать файлы WAR?

1 Ответ

0 голосов
/ 08 июня 2018

(Ссылки относятся к демонстрационному проекту, в котором я делаю то же самое, что вы пытаетесь сделать прямо сейчас, но с некоторой дополнительной сложностью, сначала прочитайте свойство и т. Д. И установите различные профили как активные: development, testing, production и некоторые другие сообщения SO)


Предположим, мы хотим установить активный профиль как production.

В build.gradleВы можете создать задачу , которая записывает свойство spring.profiles.active, используя ant.propertyfile, например:

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
    }
}

Затем вы говоритеbootWar задача, это зависит от этой предыдущей задачи, которую мы сделали как эта :

bootWar {
    dependsOn setProductionConfig
}
...