✅什么是fat jar?

典型回答

Fat JAR(也称为uber-jar)是一种包含所有依赖项的 JAR 文件,这些依赖项通常需要在运行时加载。Fat JAR 的存在是因为在传统的 Java 开发中,通常需要将多个 JAR 文件打包到一个应用程序中。但是,在部署和维护应用程序时,需要管理所有这些 JAR 文件以及它们的依赖关系,这是一项繁琐的任务。Fat JAR 解决了这个问题,将所有的依赖项打包到一个 JAR 文件中,这样可以方便地部署和维护应用程序。

Fat JAR 发生的原因通常是在使用构建工具(例如 Maven 或 Gradle)构建应用程序时,将所有依赖项打包到一个 JAR 文件中。这通常是通过配置构建脚本中的插件来完成的,这些插件负责将所有依赖项复制到单个 JAR 文件中。

在 Spring Boot 中,使用 Maven 或 Gradle 构建项目时,默认会生成一个包含所有依赖项的 fat jar。这种做法简化了应用的部署和运行,但也会导致 jar 文件过大,不利于网络传输和存储。

为了解决这个问题,可以采取以下几种方式:

  1. 优化依赖管理:移除不必要的依赖,避免冗余依赖。
  2. 使用外部依赖管理工具:将依赖项存储在独立的仓库中,通过类似 Docker 的方式进行部署和管理。
  3. 拆分 fat jar:将应用程序和依赖项分开打包,避免单个 jar 文件过大,可以方便地进行部署和更新。

原文: https://www.yuque.com/hollis666/xkm7k3/fxyiyg6l43egwe93