Spring 启动 Maven 插件并需要解压目标目录

Spring Boot Maven Plugin and requiresUnpack target directory

在某些情况下,我需要使用以下方法解压库:

spring-boot:repackage:requiresUnpack

否则,项目中的其他库将无法正常工作。如 link 中所述,选定的库将解压缩并复制到临时目录。如果我想让应用程序 运行ning 比临时文件过期时间更长,那么将库解压缩到临时目录并不是一个好主意。文件将被删除,应用程序将停止正常工作。

到目前为止,我能够通过覆盖 TMPTEMP 环境变量来更改位置目标位置,但这听起来很糟糕想法在长运行.

在此感谢任何帮助。

此问题并非仅 "requiresUnpack" 特有,这就是 spring-boot/tomcat 处理其临时文件的方式。所以它也可能在其他方面给您带来惊喜。

存在描述该行为的问题:https://github.com/spring-projects/spring-boot/issues/5009

解决方法:

  • 使用server.tomcat.basedir定义Tomcat基本目录。如果未指定,则使用临时目录。
  • 使用-Djava.io.tmpdir=/var/tmp使用不同的临时目录启动应用程序。

另一种解决方案是不解压您的库。不要将它存储在你的 fat jar 中,而是将它存储在类路径中的某个位置。