【问题标题】:Package spring boot application with a light jar to run as daemon [duplicate]使用轻量级 jar 打包 Spring Boot 应用程序以作为守护进程运行 [重复]
【发布时间】:2018-02-23 03:27:36
【问题描述】:

在使用 Maven 构建的 Debian jessie 上使用 Spring-boot 1.5.6 和 Java 8。

生成的 jar 是一个 70Mo 的大 jar,用作 daemon 可以正常使用。

如何生成一个轻量级的 jar,在某个 lib 文件夹中包含依赖项 jar 文件?

这里是我正在使用的当前 pom.xml:

https://gist.github.com/ebuildy/46e42c06d344707c823d0320d78eea1c

【问题讨论】:

    标签: java spring-boot spring-boot-maven-plugin


    【解决方案1】:

    对于不准确和不正确的答案表示歉意: 默认情况下,spring-boot-maven-plugin 不支持“提供”,而是包含所有依赖项。

    我已经尝试了链接的“瘦”扩展,但那个对我不起作用。

    回到我原来的帖子,这个想法是对的: 使用 PropertiesLauncher 并让它指向您的 JAR 所在的一些目录。

    1. 我们需要触发这个启动器。例如,这可以通过在 spring-boot-maven-plugin 中使用布局类型“DIR”来实现。

    2. 另外,需要提供一个配置文件“loader.properties”,其中包含一个指向保存 JAR 的目录(或多个目录)的属性。

    3. 如果我们想提供一个不包含任何或仅包含部分依赖项的 Spring Boot 可执行 JAR,我们需要排除不想要的那些。 存在多种解决方案(使用开箱即用的能力将它们一一排除,生成可执行 JAR 后对其进行修改,增强 spring-boot-maven-plugin 以按范围过滤)。我选择了最后一个解决方案。

    查看链接的GIST 以获取完整列表。

    【讨论】:

    • 谢谢,我已经添加了 pom.xml,使用已经提供的范围但仍然是一个胖 jar,也许我忘记了配置?
    猜你喜欢
    • 1970-01-01
    • 2017-07-01
    • 2023-03-02
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    相关资源
    最近更新 更多