外部化属性,以便部署不需要代码编译

时间:2019-04-01 10:59:16

标签: spring-boot properties teamcity cci externalizing

致力于spring-boot应用程序,在该应用程序中我们将不同环境的属性保存在不同的属性文件中,例如prod的application-prod.properties,uat的application-uat.properties等。这些属性文件位于src / main下/ resources /文件夹。为了在不同的环境中运行,我们在命令行中将env作为参数传递,并且spring-boot占用正确的属性文件。我们正在使用teamcity进行自动部署。

问题在于,每当更改属性时,由于属性文件与代码一起驻留,我们需要再次编译并构建应用程序。在teamcity的构建步骤中,如何传递属性文件或更好的路径,以便对属性进行每次更改后,只需使用新属性重新启动应用程序即可,而无需重新编译整个应用程序。还有如何在本地级别处理此问题,即使用不同的属性文件在本地运行应用程序。

1 个答案:

答案 0 :(得分:0)

您可以在应用程序启动期间将属性文件作为参数传递。下面的示例演示如何指定两个位置:

java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties

Application Property Files