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 文件过大,不利于网络传输和存储。
为了解决这个问题,可以采取以下几种方式: