Spring 启动 Maven 插件并需要解压目标目录
Spring Boot Maven Plugin and requiresUnpack target directory
在某些情况下,我需要使用以下方法解压库:
spring-boot:repackage:requiresUnpack
否则,项目中的其他库将无法正常工作。如 link 中所述,选定的库将解压缩并复制到临时目录。如果我想让应用程序 运行ning 比临时文件过期时间更长,那么将库解压缩到临时目录并不是一个好主意。文件将被删除,应用程序将停止正常工作。
- 有没有办法指定不同的目标目录?
- 临时位置适合放置应用程序库是否有原因?
到目前为止,我能够通过覆盖 TMP 和 TEMP 环境变量来更改位置目标位置,但这听起来很糟糕想法在长运行.
在此感谢任何帮助。
此问题并非仅 "requiresUnpack" 特有,这就是 spring-boot/tomcat 处理其临时文件的方式。所以它也可能在其他方面给您带来惊喜。
存在描述该行为的问题:https://github.com/spring-projects/spring-boot/issues/5009
解决方法:
- 使用
server.tomcat.basedir
定义Tomcat基本目录。如果未指定,则使用临时目录。
- 使用
-Djava.io.tmpdir=/var/tmp
使用不同的临时目录启动应用程序。
另一种解决方案是不解压您的库。不要将它存储在你的 fat jar 中,而是将它存储在类路径中的某个位置。
在某些情况下,我需要使用以下方法解压库:
spring-boot:repackage:requiresUnpack
否则,项目中的其他库将无法正常工作。如 link 中所述,选定的库将解压缩并复制到临时目录。如果我想让应用程序 运行ning 比临时文件过期时间更长,那么将库解压缩到临时目录并不是一个好主意。文件将被删除,应用程序将停止正常工作。
- 有没有办法指定不同的目标目录?
- 临时位置适合放置应用程序库是否有原因?
到目前为止,我能够通过覆盖 TMP 和 TEMP 环境变量来更改位置目标位置,但这听起来很糟糕想法在长运行.
在此感谢任何帮助。
此问题并非仅 "requiresUnpack" 特有,这就是 spring-boot/tomcat 处理其临时文件的方式。所以它也可能在其他方面给您带来惊喜。
存在描述该行为的问题:https://github.com/spring-projects/spring-boot/issues/5009
解决方法:
- 使用
server.tomcat.basedir
定义Tomcat基本目录。如果未指定,则使用临时目录。 - 使用
-Djava.io.tmpdir=/var/tmp
使用不同的临时目录启动应用程序。
另一种解决方案是不解压您的库。不要将它存储在你的 fat jar 中,而是将它存储在类路径中的某个位置。