更新Spring BOOT-INF / lib jars

时间:2017-08-18 07:15:26

标签: java spring-boot jar package

我正在尝试更新rest-xxxx.jar中的jar,这个休息jar基本上是一个SpringBoot Jar,当你解压缩时它的文件夹结构为BOOT-INF/lib/<dependencies.jars>

现在我想在这个rest-xxxx.jar中替换一个依赖jar,所以我使用了命令:

jar uf rest-xxxx.jar BOOT-INF/lib/new-version-jar-same-name.jar

我在启动过程中遇到错误:

  

线程“main”中的异常java.lang.IllegalStateException:无法打开嵌套条目'BOOT-INF / lib / new-version-jar-same-name.jar'。它已被压缩,嵌套的jar文件必须在没有压缩的情况下存储。请检查用于创建可执行jar文件的机制

我注意到jar命令有一个0选项来避免压缩,所以我做了:

jar u0f rest-xxxx.jar BOOT-INF/lib/new-version-jar-same-name.jar

但后来我遇到了类似的压缩问题,如下所示:

  

线程“main”中的异常java.lang.IllegalStateException:无法打开嵌套条目'BOOT-INF / lib / new-version-jar-same-name.jar / META-INF / MANIFEST.MF'。它已被压缩,嵌套的jar文件必须在没有压缩的情况下存储。请检查用于创建可执行jar文件的机制

当我需要替换给定springboot jar中的依赖项jar时,我该怎么办?

请注意:我理解最佳做法是从更新的pom.xml构建,我们的限制是我们目前无法获得正确的版本源代码,因此我们正在尝试修补现有的springboot jar而不是重建它。

1 个答案:

答案 0 :(得分:0)

使用jar命令解压jar包,替换压缩包外的jar包,进行压缩。

https://www.programmersought.com/article/48535890080/