Java 如何将JAR文件添加到现有WAR文件web inf/lib文件夹?

Java 如何将JAR文件添加到现有WAR文件web inf/lib文件夹?,java,maven,Java,Maven,我的设置如下所示: 我有一个war文件,它不在我的控制之下(我只能作为依赖项拉它),它是一个springbootweb应用程序 我有一个jar文件,我想将它添加到web inf/lib文件夹中,以便war文件在其类路径上看到它 到目前为止,我正在将war文件部署到本地Tomcat,并将jar添加到Tomcat安装的lib文件夹中。我想切换到一个可执行的war文件,这样我就可以通过命令行运行它,而不必使用单独的Tomcat实例 如何使用Maven实现我的目标?您可以尝试一下Maven war插

我的设置如下所示:

  • 我有一个war文件,它不在我的控制之下(我只能作为依赖项拉它),它是一个springbootweb应用程序
  • 我有一个jar文件,我想将它添加到web inf/lib文件夹中,以便war文件在其类路径上看到它
到目前为止,我正在将war文件部署到本地Tomcat,并将jar添加到Tomcat安装的lib文件夹中。我想切换到一个可执行的war文件,这样我就可以通过命令行运行它,而不必使用单独的Tomcat实例


如何使用Maven实现我的目标?

您可以尝试一下Maven war插件的功能,但我不确定,如果spring boot独立可执行文件使用web inf/lib,我想总结一下我必须做的事情:

  • 使用maven war插件,并使用指向war依赖项的覆盖
  • 正确设置插件:

    
    org.apache.maven.plugins
    maven战争插件
    3.3.0
    错误的
    src/main/resources/MANIFEST.MF
    错误的
    错误的
    ...
    


  • 我必须显式复制清单文件(它被忽略)并禁用jar压缩。

    我没有任何web应用程序,我想通过添加额外的jar以某种方式覆盖现有的war。我不确定覆盖层在这种情况下是否有用。因此,您可以创建另一个带有war打包的maven模块,该模块将现有war和您的jar结合起来,并使用覆盖层功能组合bothOk,生成的war文件看起来很好,但是当我运行它时(java-jar)我得到以下信息:原因:java.lang.IllegalStateException:无法打开嵌套条目“WEB-INF/lib/XYZ.jar”。它已被压缩,嵌套的jar文件必须在不压缩的情况下存储。请检查用于创建可执行jar文件的机制显然XYZ.jar只是其中的一个示例RecompressedZippedFiles选项似乎无法解决问题-jar仍然是压缩的