35人参与 • 2025-12-31 • ar
由于线上项目中突然爆出一个bug问题,影响到用户使用,但是 线上的jar包版本,已经是很久的了,没有对应的分支版本,或者再这个分支版本上后来又提交了一些新功能。
不知道该回退到哪次提交记录才能保证和线上环境的版本内容完全一致。
在这种情况我们不能再当前最新的版本里进行修复问题,然后进行打包,因为当前最新的版本里会有很多不确定的问题。所以最好的办法就是线上的问题出在哪里,只对这个文件进行修改、替换、重启,这种修改影响最小。
下面介绍如何替换jar中的文件,可以替换单个或多个,下面以自己线上的实际操作进行介绍。
将本地修改后的application-zhyd-prod.yml配置文件,准备好。
从服务器上把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包的内容,并不解压
jar -xvf zhyd-platform-customer.jar boot-inf/classes/application-zhyd-prod.yml boot-inf/classes/application-zhyd-prod.yml
-xvf:解压出来jar包的指定的文件


然后将第一步准备好的.yml文件,替换掉这里的yml文件。
jar -uvf zhyd-platform-customer.jar boot-inf/classes/application-zhyd-prod.yml #单个文件 boot-inf/classes/application-zhyd-prod.yml #如果boot-inf/classes/目录下有多个文件需要打入jar包,可以用下面的方法 jar -uvf zhyd-platform-customer.jar boot-inf/classes/
-uvf:将指定路径的文件打入指定的jar内部,若有就覆盖替换。
可以再次对jar进行解压出指定的文件,然后查看是否已经是最新的了。
将jar包上传至服务端后,需要先启一个单独接口测试一下是否正常,然后再替换生产上的版本。
java -jar xxxxx.jar --server.port=端口号
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论