什么是超级罐?

2022-08-31 04:52:51

我正在阅读Maven文档,并遇到了这个名字。uber-jar

是什么意思,它的功能/优点是什么?uber-jar


答案 1

Über是德语单词 or(它实际上与英语同源)。aboveoverover

因此,在这种情况下,uber-jar是一个“over-jar”,比简单的JAR(a)高出一个级别,定义为在一个JAR文件中包含包及其所有依赖项的JAR。这个名字可以被认为是来自与超极客,超人,超空间和元数据相同的稳定,它们都具有“超越正常”的相似含义。

优点是你可以分发你的uber-jar,而根本不关心是否在目标位置安装了依赖项,因为你的uber-jar实际上没有依赖项。

你自己的东西在uber-jar中的所有依赖关系也在uber-jar中。这些依赖关系的所有依赖关系也是如此。等等。


(a)我可能不应该向Java开发人员解释JAR是什么,但为了完整性,我将包括它。它是一个Java归档文件,基本上是一个文件,通常包含许多Java类文件以及相关的元数据和资源。


答案 2

ubar jar也称为胖罐,具有依赖关系的jar。
构建 uber jar 有三种常用方法:

  1. 无阴影:解压缩所有 JAR 文件,然后将其重新打包到单个 JAR 中。与 Java 的缺省类装入器配合使用。工具 maven-assembly-plugin
  2. 阴影:与无阴影相同,但重命名(即“阴影”)所有依赖项的所有。与 Java 的缺省类装入器配合使用。避免某些(不是全部)依赖项版本冲突。工具 maven-shade-plugin
  3. JAR OF JAR OF JAR:最终的 JAR 文件包含嵌入在其中的其他 JAR 文件。避免依赖版本冲突。将保留所有资源文件。工具: Eclipse JAR File Exporter

了解更多


推荐