【发布时间】:2017-06-07 15:13:47
【问题描述】:
Difference between extracting and packaging libraries into a jar file 解释了如果您分别选择每个选项会发生什么。
我不明白什么时候会推荐一个选项高于另一个选项。
【问题讨论】:
-
"Fat" Jars 的缺点是,如果您在同一个名称空间内(跨多个 Jars)拥有资源,它们会发生冲突。您还必须考虑如何更新应用程序。当您可以下载单独的罐子时,真的值得下载整个应用程序吗?如果您在一个环境中工作,其中不同的应用程序使用相同的库 Jar,那么单独维护它们可能会更好。当您考虑原生包装器时,其中许多可以“包含”罐子在其中,一个胖罐子开始失去它的吸引力(恕我直言)
-
这个问题的部分问题在于它是基于意见的。有些人只是“喜欢”胖罐子,有些人不喜欢,仅此而已。您必须了解自己对项目的个人利弊,并了解最适合您和项目的一般情况
-
@MadProggrammer 事情是,我以前从未导出过项目。我知道我不想“将所需的库复制到生成的 JAR 旁边的子文件夹中”。至于其他两个选项,我可以看到 Eclipse 对每个选项与其他问题的不同之处。我不明白的是,每个选项的最终结果是否存在功能差异会影响我的决定。例如,什么时候一个选项不起作用?期权何时会提供优势?它有什么优势?偏好是一回事,实际原因呢?
-
我没有看到两者之间的“巨大”差异。诚然,您正在读取单个文件,而不是多个文件,因此“可能”有一点优势,我自己并没有费心对其进行基准测试。如果您在动态环境中操作(自己加载 Jars),那么胖 jar 并没有多大优势。同样,如果您使用某种元数据查找机制来配置应用程序的某些部分(加上动态类加载),那么您将遇到胖 jar 的问题(因为资源会被覆盖)
标签: java eclipse executable-jar