2015-10-19 3 views
0

Некоторые свойства были включены в файл свойств, на который ссылается файл SpringConfiguration Spring (конфигурация на основе java). Это в основном свойства url и базы данных, которые могут варьироваться в зависимости от среды развертывания.Конфигурация файла свойств после сборки, перед развертыванием

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

+2

Поместите файл свойств в каталог conf вашего tomcat. Этот путь должен находиться в пути к нему – Jens

+0

Вы ищете что-то более сложное, чем замену файла внутри jar/war вручную (это ZIP-файл, поэтому любой архиватор будет делать). Если да, каковы ваши требования? –

+0

@JiriTousek No. Так что мне просто нужно взять файл войны, разархивировать его, отредактировать файл свойств и затем снова застегнуть его почтой? Но я думаю, что использование его как части свойств tomcat было бы более удобным, чтобы команда развертывания могла справиться с этим на основе среды? – Chillax

ответ

1

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

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

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

+0

Спасибо. Я делаю то же самое. Поместили его в директорию conf в tomcat. Я упомянул об этом, используя @PropertySource ("classpath: application.properties") в моем конфигурационном файле Spring. Но затем получите следующую ошибку: java.io.FileNotFoundException: ресурс пути класса [application.properties] не может быть открыт, потому что его не существует. Как еще я могу его получить? – Chillax

+0

Возможно, стоит попробовать с 'file:' и полностью квалифицированным каталогом, если директория conf Tomcat не находится в пути к классу приложения. Помимо этого, возможно, убедитесь, что 'catalina.properties' загружает ваши файлы свойств среды. См. Https://www.mulesoft.com/tcat/tomcat-classpath. – Steve

0

Я рекомендую этот aproximation: Override Properties file in Spring WebApp at Runtime

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

Смежные вопросы