由于某些库包含不允许分发的许可证,因此想要运行我们软件的客户必须自行获取库并将其添加到 Spring Boot 应用程序中。
之前,我们将 spring boot uber jar 添加到容器中,并使用
PropertiesLauncher
和 LOADER_PATH
,以便客户可以在容器中挂载库并调整类路径。
现在我们想要将图像生成切换到 buildpack,就像
mvn spring-boot:build-image
所做的那样。当应用程序在图像中解压时,在我看来,PropertiesLauncher
和LOADER_PATH
将不再起作用。
将第三方 Java 库添加到构建的 Spring Boot 容器的推荐方法是什么?
原来
spring-boot-maven-plugin
的配置是错误的。配置 <layout>ZIP<layout>
仅对 repackage
目标有效,但对 build-image
目标无效。
为
<layout>ZIP<layout>
目标正确配置 build-image
后,生成的构建包映像将使用 org.springframework.boot.loader.launch.PropertiesLauncher
,从而再次允许使用 LOADER_PATH
。