Установить активный профиль пружины с помощью bootWar
Я пытаюсь установить активный профиль пружины при создании файла 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 ответ
(Ссылки относятся к демонстрационному проекту, в котором я делаю то же самое, что вы пытаетесь сделать прямо сейчас, но с некоторой дополнительной сложностью, сначала прочитайте свойство и т. Д. И установите различные профили как активные:development
,testing
,production
и некоторые другие посты ТАК)
Предположим, мы хотим установить активный профиль как 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
}