Spring Boot Jenkins CD / CI Изменить профиль перед развертыванием - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть веб-приложение Spring Boot, которое нужно развернуть в Tomcat с помощью Jenkins.

Я настроил конвейер, и развертывание происходит просто отлично.

Но у меня есть два профиляв моем приложении.Один для разработки, а другой для производства.Некоторые свойства, такие как URL-адреса БД и т. Д., Различны для каждого из этих профилей.

Итак, у меня есть два файла свойств внутри src/main/resources следующим образом:

application-dev.properties
application-prod.properties

Кроме того, у меня есть еще один application.properties в том же каталоге, который имеет только одно свойство (свойство активного профиля)

spring.profiles.active=dev

Теперь, когда я запускаю это через Eclipse, все работает довольно хорошо.Даже когда Дженкинс развертывает WAR для tomcat, все хорошо, кроме одной проблемы.Я не могу изменить значение spring.profiles.active на prod до того, как произойдет развертывание в Tomcat.

В настоящее время в моем SVN есть файл application.properties, зафиксированный с spring.profiles.active = prod

Когдакто-то проверяет код и работает в своей локальной среде, он меняет его на «dev» и продолжает работать, и они просто не фиксируют это изменение в SVN.Это временный обходной путь, которому я следую, и я чувствую, что это можно сделать более эффективным способом.

Как получить тот же файл WAR и просто изменить профиль, не меняя файл application.properties?Это можно сделать в Дженкинс?Или я должен посмотреть в другом месте?

Спасибо, Шрирам Шридхарен

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Если вы используете приложение весенней загрузки, то перед запуском приложения вы должны указать -Dspring.profiles.active = prod.По умолчанию переменные среды Spring переопределяют конфигурации, присутствующие в файле свойств.Но я согласен с ответом Йогеша о том, что профиль не должен быть жестко закодирован в приложении.

Теперь обращаемся к разработчикам, когда они проверяют код, который они также могут предоставить -Dspring.profiles.acitve = dev в качестве аргументов вeclipse или intellij запускают конфигурации.

Это однократное изменение конфигурации в eclipse / intellij, и оно работает очень хорошо.Мы используем это в нашем проекте, и это действительно помогает.

0 голосов
/ 04 февраля 2019

Первый шаг - удалить жестко закодированное имя профиля из файла свойств, а затем вы можете указать, какой профиль активировать через переменную среды, установив SPRING_PROFILES_ACTIVE=dev.То же, что и установка spring.profiles.active=dev в файле свойств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...