Java 更新Spring BOOT-INF/lib jars
我正在尝试更新Java 更新Spring BOOT-INF/lib jars,java,spring-boot,jar,package,Java,Spring Boot,Jar,Package,我正在尝试更新restxxxx.jar中的一个jar,这个restjar基本上是一个SpringBoot jar,解包时它的文件夹结构是BOOT-INF/lib/ 现在我想替换这个rest xxxx.jar中的依赖项jar,因此我使用了以下命令: jar uf rest-xxxx.jar BOOT-INF/lib/new-version-jar-same-name.jar 在引导过程中我是如何出错的: 线程“main”java.lang.IllegalStateException中出现异常:无
restxxxx.jar
中的一个jar,这个restjar基本上是一个SpringBoot jar,解包时它的文件夹结构是BOOT-INF/lib/
现在我想替换这个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,而不是重建它。使用jar命令解压缩jar包,在压缩包外替换jar包,并压缩它
我认为
metron rest xxxx.jar
jar本身必须解压缩。我想做的是更新metron rest xxx.jar
中的内容,因此无法解压缩此jar。我只是将metron rest xxx.jar更改为rest xxxx.jar
,以避免混淆。为什么不能更新pom.xml中的依赖项并重建Spring Boot应用程序?当我需要用给定的springboot jar替换依赖项时,我该怎么办?我会更新项目build.gradle/pom.xml中的依赖项(即在源代码中),重新编译并重新执行所有的单元和集成测试,以确保新的依赖项不会破坏任何东西,并使用由项目的官方、精心编制的构建过程生成的jar,如果我能从src代码中重建并将其放入maven pom.xml中,我理解这一点会容易得多。但我的问题是,现在我只有一个需要修补的jar文件,所以你可以讨论最佳实践,但我需要修补这个jar。