注意:在将此问题标记为重复项之前,请确保您知道可执行JAR和fully executable SpringBoot JAR之间的差异。SpringBoot完全可执行jar无内部依赖关系
The official Spring Boot documentation描述了如何构建可执行JAR的完全。然后生成的JAR文件可以从/etc/init.d/
链接起来,并作为普通的unix服务启动/停止/重新启动/静态化,而无需其他脚本或JSVC工具。
但生成的JAR包含所有的库,并且可能足够大(在我的情况下为70Mb +)。
我想生成这样的完全可执行JAR没有库,但然后能够运行它作为Linux上的SystemV服务和以某种方式链接外部库(JAR)。
UPDATE
我想降低成本,以加快deploy->测试 - >修正循环的工件尺寸。有时我通过移动网络工作,大文件大小可以显着降低我的工作速度。
如果没有简单的配置属性或配置文件或命令行选项,我会使用一种破解。
在开始时,我可以生成包含所有依赖关系的构建。 然后我可以将它解压缩并将所有库移动到一个特殊的文件夹中。
然后我需要将它作为完全可执行文件再次打包并运行指向带库的文件夹。
$ file usual.jar
usual.jar: Java Jar file data (zip)
为什么?然后,你只需要维护所有的外部依赖关系,这将需要另一个部署步骤等。 – Gregg
@Gregg我已更新该帖子。请让我知道如果它仍然不清楚。 – gumkins
您可以将其作为爆炸罐执行。因此,您可以创建胖罐,解压缩它,仅部署所需的工件,将其余的“缓存”。看到这篇文章的类似问题:http://bsideup.blogspot.com/2015/04/spring-boots-fat-jars-vs-docker.html – Gregg