为了账号安全,请及时绑定邮箱和手机立即绑定

什么是Uber罐子?

什么是Uber罐子?

什么是Uber罐子?我正在阅读Maven文档,并偶然发现了‘uber-jar’这个名字。Uber-jar意味着什么?它的特点/优点是什么?
查看完整描述

3 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

Über德语是代表aboveover如前一首国歌中的一行:Deutschland, Deutschland, über alles(德国、德国高于一切)。

因此,在这个上下文中,uber-jar是一个“overjar”,从一个简单的“jar”到一个简单的“jar”,定义为包含两个包的一个级别。它在一个JAR文件中的所有依赖项。这个名字可以被认为来源于超级极客、超人、超空间和元数据,它们都具有“超乎常理”的相似含义。

优点是您可以分发您的uber-jar,而根本不关心是否在目的地安装了依赖项,就像您的uber-jar实际上一样。没有依赖关系。

在uber-jar中,您自己的所有依赖项都是在那个破罐子里。这些依赖项的所有依赖项都是如此。诸若此类。


查看完整回答
反对 回复 2019-07-11
?
三国纷争

TA贡献1804条经验 获得超7个赞


此外,如果您真的想分发一个软件,并且不希望客户不得不自己下载依赖项,请考虑交付一个uber-jar有时是相当有趣的。作为一种退让,如果他们自己的策略不允许使用某些库,或者他们必须绑定一些额外的组件(slf4j,符合系统的libs,arch Specialiez库,.)这可能会增加他们的困难。

你可以这样做:

一个更干净的解决方案是分别提供这个库;maven-shading-plugin已经为它预先配置了描述符。这并不是更复杂的(用maven和它的插件)。

最后,一个非常好的解决方案是使用OSGIBundle。在这方面有很多很好的教程:)

有关进一步的配置,请阅读以下主题:


查看完整回答
反对 回复 2019-07-11
?
米脂

TA贡献1836条经验 获得超3个赞

Ubar罐也被称为脂肪罐E.带依赖项的JAR。
构建uber JAR有三种常见方法:

  1. 无阴影的:

    解压所有JAR文件,然后将它们重新打包到一个JAR中。使用Java的默认类加载器。工具

    maven-程序集-插件

  2. 阴影:

    与未加阴影的相同,但重命名(即“阴影”)所有

    包裹

    所有依赖关系。使用Java的默认类加载器。避免某些(并非所有)依赖版本冲突。工具

    maven-阴影插件

  3. 罐子:

    最后一个JAR文件包含嵌入在其中的其他JAR文件。避免依赖版本冲突。保存所有资源文件。工具:

    EclipseJAR文件导出程序

想要更多


查看完整回答
反对 回复 2019-07-11
  • 3 回答
  • 0 关注
  • 416 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信