jar包重新压缩后运行出错的问题
在部署应用的时候,由于线上与测试环境的配置不同(例如数据库的url),有时候我们需要在对应的环境把jar(或war)包里面的配置文件替换掉。 针对这种问题,以前一直采用的方案是先 jar xf xxx.jar 解压这个jar包,替换文件后,使用 jar cfM xxx.jar * 来重新压缩。 由于以前打包的时候是使用的shadowJar插件,用这个方法替换一直没出问题。最近打包插件替换成了springBoot的,使用这个方式替换会导致新的jar包运行出错的问题。于是使用了 jar uf xx xxx.jar 的方式来替换,在此对旧的替换方法出的问题做一个总结并且记录一下新的替换方式的使用方法。 问题1:运行时提示依赖的jar文件被压缩 错误信息: Exception in thread "main" java.lang.IllegalStateException: Unable to open nested entry 'BOOT-INF/lib/xxxxx.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 错误重现: