什么是Uber罐子?

什么是Uber罐子?

我正在阅读Maven文档,并偶然发现了‘uber-jar’这个名字。

Uber-jar意味着什么?它的特点/优点是什么?


白衣非少年
浏览 417回答 3
3回答

郎朗坤

Über德语是代表above或over如前一首国歌中的一行:Deutschland, Deutschland, über alles(德国、德国高于一切)。因此,在这个上下文中,uber-jar是一个“overjar”,从一个简单的“jar”到一个简单的“jar”,定义为包含两个包的一个级别。和它在一个JAR文件中的所有依赖项。这个名字可以被认为来源于超级极客、超人、超空间和元数据,它们都具有“超乎常理”的相似含义。优点是您可以分发您的uber-jar,而根本不关心是否在目的地安装了依赖项,就像您的uber-jar实际上一样。有没有依赖关系。在uber-jar中,您自己的所有依赖项都是也在那个破罐子里。这些依赖项的所有依赖项都是如此。诸若此类。

三国纷争

此外,如果您真的想分发一个软件,并且不希望客户不得不自己下载依赖项,请考虑交付一个uber-jar有时是相当有趣的。作为一种退让,如果他们自己的策略不允许使用某些库,或者他们必须绑定一些额外的组件(slf4j,符合系统的libs,arch Specialiez库,.)这可能会增加他们的困难。你可以这样做:基本上maven-程序集-插件再远一点maven-阴影插件一个更干净的解决方案是分别提供这个库;maven-shading-plugin已经为它预先配置了描述符。这并不是更复杂的(用maven和它的插件)。最后,一个非常好的解决方案是使用OSGIBundle。在这方面有很多很好的教程:)有关进一步的配置,请阅读以下主题:应该在客户端JAR中提供依赖库吗?构建和部署Clojure应用程序的最佳实践:好的教程?

米脂

Ubar罐也被称为脂肪罐E.带依赖项的JAR。构建uber JAR有三种常见方法:无阴影的:解压所有JAR文件,然后将它们重新打包到一个JAR中。使用Java的默认类加载器。工具maven-程序集-插件阴影:与未加阴影的相同,但重命名(即“阴影”)所有包裹所有依赖关系。使用Java的默认类加载器。避免某些(并非所有)依赖版本冲突。工具maven-阴影插件罐子:最后一个JAR文件包含嵌入在其中的其他JAR文件。避免依赖版本冲突。保存所有资源文件。工具:EclipseJAR文件导出程序想要更多
打开App,查看更多内容
随时随地看视频慕课网APP