use*_*709 14 java maven maven-shade-plugin
你能帮忙解释什么是阴影罐,有什么maven-shade-plugin用?什么是超级罐子.
gly*_*ing 33
我将首先解释一下超级JAR是什么,因为这是阴影解释的基础.
优步JAR
uber JAR是一个JAR,它包含多个JAR的内容(或者,不太常见的是,多个其他JAR本身)
您的应用程序几乎肯定会使用其他软件包,这些软件包可能会作为JAR提供.使用Maven时,这些依赖关系将表示如下:
<dependency>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
在运行时,您的应用程序将期望在其类路径中找到此JAR中包含的类.
您可以创建一个包含来自这些依赖JAR的所有类等的超级JAR,然后从这个超级JAR运行您的应用程序,而不是将每个这些依赖JAR与您的应用程序一起发布.
底纹
着色提供了一种创建超级JAR并重命名超级JAR包含的包的方法.如果你的uber JAR很可能被用作另一个应用程序中的依赖项,那么uber JAR中依赖类的版本可能会与另一个应用程序中相同依赖项的版本冲突.着色有助于通过重命名超级JAR中的包来避免任何此类问题.
例如:
Foo库的v1.0.0的超级JAR .BarBar应用程序有它自己的依赖Foo,但在该库的V1.2.0.现在,如果版本1.0.0和1.2.0之间存在任何冲突,Foo我们可能会遇到问题,因为所有者Bar不能依赖于哪一个将被加载,因此他们的代码会出错或者您的代码 - 在他们的应用程序中运行时 -会行为不端.
着色有助于避免诸如此类的问题,并且还允许提供者Foo明确其使用的依赖库的版本.
将maven-shade-plugin让你(一)创建一个超级JAR和(b)遮阳其内容.
摘要
创建uber JAR是一种简化部署过程的有用技术.
着色是超级JAR理念的扩展,通常仅限于使用案例
| 归档时间: |
|
| 查看次数: |
6860 次 |
| 最近记录: |