Конфигурация файла свойств после сборки, перед развертыванием

Некоторые свойства были включены в файл свойств, на который ссылается файл ApplicationConfiguration Spring (конфигурация на основе Java). В основном это свойства URL-адреса и базы данных, которые могут различаться в зависимости от среды развертывания.

План состоит в том, чтобы поместить файл свойств в путь к классам. Как я могу изменить файл свойств после того, как сборка (Дженкинс) будет взята. Я должен иметь возможность изменить файл свойств и снова развернуть его в соответствующей среде без создания новой сборки. Любые предложения, пожалуйста?


person Chillax    schedule 19.10.2015    source источник
comment
Поместите файл свойств в каталог conf вашего tomcat. Этот путь должен быть в его пути к классам.   -  person Jens    schedule 19.10.2015
comment
Вы ищете что-то более сложное, чем замена файла внутри jar/war вручную (это ZIP-файл, поэтому подойдет любой архиватор). Если да, то каковы ваши требования?   -  person Jiri Tousek    schedule 19.10.2015
comment
@JiriTousek Нет. Значит, мне просто нужно взять военный файл, разархивировать его, отредактировать файл свойств, а затем снова заархивировать? Но я предполагаю, что было бы удобнее иметь его как часть свойств tomcat, чтобы группа развертывания могла справиться с этим в зависимости от среды?   -  person Chillax    schedule 19.10.2015
comment
@Jens Сделал то же самое. Не могли бы вы проверить мои комментарии для ответа ниже?   -  person Chillax    schedule 19.10.2015
comment
@Chillax Пожалуйста, проверьте, находится ли каталог conf в classptah   -  person Jens    schedule 19.10.2015


Ответы (2)


Документация Spring содержит множество подробностей о ваших параметрах внешней конфигурации:

http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

Доступные варианты включают размещение application.properties / application.yml в корне вашего пути к классам, поэтому, вероятно, самый простой вариант — поместить его в каталог tomcat conf.

person Steve    schedule 19.10.2015
comment
Спасибо. Я делаю то же самое. Поместили его в каталог conf tomcat. Я упомянул об этом, используя @PropertySource(classpath:application.properties) в моем файле конфигурации Spring. Но затем получите следующую ошибку: java.io.FileNotFoundException: ресурс пути к классу [application.properties] не может быть открыт, поскольку он не существует. Как еще я могу получить его? - person Chillax; 19.10.2015
comment
Вместо этого, возможно, стоит протестировать file: и полностью определенный каталог, если каталог conf Tomcat не находится в пути к классам вашего приложения. Кроме того, возможно, убедитесь, что catalina.properties загружает файлы свойств вашей среды. См.: mulesoft.com/tcat/tomcat-classpath - person Steve; 19.10.2015

Я рекомендую это приближение: Переопределить файл свойств в Spring WebApp в Время выполнения

Вам нужно только что-то, чтобы указать на ваш файл. Я использую свойства JNDI. Я думаю, что это очень плохая идея - изменить войну между средами.

person Sisifo    schedule 19.10.2015