【发布时间】:2021-01-17 03:20:43
【问题描述】:
当您想使用某个 Java 库中的某个实用程序时,您通常会怎么做?我的意思是,如果您将其添加为 Maven 依赖项,整个库是否会包含在组装的 JAR 中?
我没有任何类型的存储问题,我不介意 JAR 变得臃肿,但我只是好奇在这种情况下是否有一些策略可以减少 JAR 的大小。
谢谢
【问题讨论】:
-
默认情况下,包含您的代码的 jar 和依赖项的 jar 文件是完全独立的。您可以将它们捆绑在一个“胖罐”中(也可以使用其他一些名称),但这是一个单独的步骤,而不是通常的步骤。是的,这通常意味着您“携带”整个库,即使您不使用它。
-
默认情况下,依赖项不是 JAR 的一部分,但您可以对其进行配置。如果您声明一个依赖项,您将下载它以及所有非可选的临时依赖项。
-
在我看来,Maven 和大多数其他自动化依赖管理系统都基于我们拥有无限存储这一事实。除了收回对依赖项的控制之外,我真的没有看到解决这个问题的方法。毕竟,我们过去管理过。
-
类无论如何都是延迟加载的,所以尽管你携带整个jar,你可能加载少得多。
标签: java maven jar dependencies