最近在因为项目依赖了太多微服务的包,所以项目经常报错,又因为在联调接口,需要经常打包,所以想直接在springboot项目的一个jar包直接加上自己的补丁,然后重新部署就行,提高效率
使用压缩软件打开jar,然后往里面直接替换class文件,不过启动后,会报错
代码语言:javascript复制Caused by: java.lang.IllegalStateException: Unable to open nested entry 'BOOT-INF/lib/**.jar'.
It has been compressed and nested jar files must be stored without compression.
Please check the mechanism used to create your executable jar file
所以解决方法是,先使用命令解压jar包:
代码语言:javascript复制jar -xvf .test-protal.jar
解压后会生成一个文件夹,然后将补丁直接放在文件夹里,再使用命令
代码语言:javascript复制jar -cfM0 test-portal.jar ./
命令执行成功后,会重新生成一个新的jar包