需求描述
springboot项目接入nacos配置,代码中使用bootstrap.yml来指定nacos信息,为了防止不同环境的来回切换,服务器中都单独在放一个bootstrap.yml,来指定具体环境的nacos配置,如sit服务器使用sit的nacos配置,uat服务器使用uat的nacos配置文件。
服务其中打出来的jar中已经包含了各个bootstrap-xxx.yml文件(没有排除响应的配置文件),jar所在位置(同级)也引入了外部的bootstrap.yml来引入nacos配置。
目的:运行时,希望使用的时外部 bootstrap.yml 文件。
bash
nohup java -jar -Xms512M -Xmx512M -Duser.timezone=GMT+8 -Dlog.path=/applog/logs -Dspring.profiles.active=local xxx-1.0.0-release.jar -jasypt.encryptor.password=xxxsalt &
如果打包时,排除jar中的配置文件,那么用上边的启动命令是可以的。如果jar包中包含项目配置文件,上边命令有时可以有时不可以(那就是不可以)。
解决方法
使用-D命令设置系统属性
bash
nohup java -jar -Xms512M -Xmx512M -Duser.timezone=GMT+8 -Dlog.path=/applog/logs -Dspring.config.location=./bootstrap.yml xxx-1.0.0-release.jar -jasypt.encryptor.password=xxxsalt &
shell脚本命令中使用-Dspring.config.location=./bootstrap.yml,指定外部配置文件。