java .jar包内yml配置文件自动在线修改更新

打包后的jar应用程序,可能会遇到需要修改jar包中的yml配置文件,但是不需要重新打包,下面分享一下自动修改方法

本文采用java官方jar工具和配合shell脚本自动修改jar包的配置文件后自动更新到jar包。

~~~sh
# 查找 application.yml 的位置
# jar tvf sba-server-1.0.0.jar|grep “yml”
# 查找出 jar 包中所有 BOOT-INF 文件夹下的 yml配置文件 列表
jar tvf sba-server-1.0.0.jar | grep ".yml" |awk '/BOOT-INF/{print $8}'


# 将yml文件从 jar包中提取出来, 注意 BOOT-INF/classes/application.yml是上面查询出来的地址,解压后是当前文件夹的这个地址
jar xvf sba-server-1.0.0.jar BOOT-INF/classes/application.yml

# 修改yml文件 .......
# 示例环境变量
SBA_PROT=9000
SBA_USER="admin"

sed -i 's#^  port:.*#  port: '${SBA_PROT}'#g; s#    username:.*#    username: '${SBA_USER}'#g;' BOOT-INF/classes/application.yml

# 将修改后的yml文件重新压回jar文件中
jar uvf sba-server-1.0.0.jar BOOT-INF/classes/application.yml

~~~

你可能感兴趣的:(java,jar,开发语言)