Внешние свойства, чтобы развертывание не требовало компиляции кода
Работая с приложением весенней загрузки, в котором мы сохраняем свойства для разных сред в разных файлах свойств, например, для prod его application-prod.properties, для uat его application-uat.properties и т. Д. Эти файлы свойств находятся в каталоге src / main / resources / папка. Для запуска в другой среде мы передаем env в качестве параметра в командной строке, а spring-boot загружает правильный файл свойств. Мы используем teamcity для автоматического развертывания.
Проблема в том, что всякий раз, когда свойство изменяется, нам нужно снова скомпилировать и собрать приложение, поскольку файл свойств находится в коде. Как передать файл свойств или, лучше сказать, его путь на этапе сборки teamcity, чтобы при каждом изменении свойства было достаточно перезапустить приложение с новым свойством без перекомпиляции всего приложения. Также, как это сделать на локальном уровне, т.е. для локального запуска приложения с другим файлом свойств.
1 ответ
Вы можете передать файл свойств в качестве параметра при запуске приложения. В следующем примере показано, как указать два местоположения:
java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties