文章目录
- 1.使用场景
- 2.先准备好待替换的文件
- 3.下载服务器上的jar包
- 4.解压出来指定的文件
- 5.将文件打入jar包
- 6.查看是否替换成功
1.使用场景
由于线上项目中突然爆出一个bug问题,影响到用户使用,但是 线上的jar包版本,已经是很久的了,没有对应的分支版本,或者再这个分支版本上后来又提交了一些新功能。不知道该回退到哪次提交记录才能保证和线上环境的版本内容完全一致。在这种情况我们不能再当前最新的版本里进行修复问题,然后进行打包,因为当前最新的版本里会有很多不确定的问题。所以最好的办法就是线上的问题出在哪里,只对这个文件进行修改、替换、重启,这种修改影响最小。下面介绍如何替换jar中的文件,可以替换单个或多个,下面以自己线上的实际操作进行介绍。
2.先准备好待替换的文件
将本地修改后的application-zhyd-prod.yml配置文件,准备好。
3.下载服务器上的jar包
从服务器上把jar包文件下载下来,放到本地单独的一个文件夹内,查看要替换的application-zhyd-prod.yml文件在zhyd-platform-customer.jar包中所在的具体路径,命令如下:
jar -tvf zhyd-platform-customer.jar | grep application-zhyd-prod.yml
9975 Fri Jun 02 16:04:00 CST 2023 BOOT-INF/classes/application-zhyd-prod.yml
-tvf:查看jar包的内容,并不解压
4.解压出来指定的文件
jar -xvf zhyd-platform-customer.jar BOOT-INF/classes/application-zhyd-prod.yml
BOOT-INF/classes/application-zhyd-prod.yml
-xvf:解压出来jar包的指定的文件
然后将第一步准备好的.yml文件,替换掉这里的yml文件。
5.将文件打入jar包
jar -uvf zhyd-platform-customer.jar BOOT-INF/classes/application-zhyd-prod.yml
BOOT-INF/classes/application-zhyd-prod.yml
-uvf:将指定路径的文件打入指定的jar内部,若有就覆盖替换。
6.查看是否替换成功
可以再次对jar进行解压出指定的文件,然后查看是否已经是最新的了。