maven-shade-详解附加名字可执行jar包
最近在解决java jar包冲突的时候用到了shade插件 , 于是从官网仔细看了下shade的详细使用 , 翻译总结如下 , 希望能用得到 。
直译为遮盖 , 这可以比较好的形容maven-shade-插件的功能 , 比如 , 打胖jar等
介绍
maven shade 提供把工程的及其依赖打包到一个uber-jar中并能隐藏起来(比如重命名) , shade插件仅仅有一个功能就是创建一个包 。
那什么是uber-jar呢 , uber在德语中是above或over的意思 , 在这里表示是从单一的jar提升到“over-jar” , 即把所有的依赖都定义到一个jar文件里 。
好了 , 现在我们知道shade插件的基本作用了 , 现在从官网给出的几个例子看看实际的应用 。
为uber-jar选择内容
这是官网直译的标题 , 用我们容易理解的就是通过shade插件我们可以为生成的那个jar包选择包含哪些依赖以及排除哪些依赖 。
...
类重定位(解决jar包冲突)
官网是“ ” , 如果一个uber-jar会被其他项目引用 , uber-jar中依赖的类可能会导致类定位冲突(由于不同版本的jar包引起) , 我们可以通过shade插件来将被隐藏的类重定位以使该类只在该uber-jar中使用 , 这种方式也经常被用来解决jar包冲突问题 。
示例如下:
...
上述例子是让org...util包和它的子包移动到 org...util包中 , 而类和其他的一些则保留在原来的中 。
一个解决jar包冲突的例子
代码
附加名字
默认情况下 , 当执行/时候 , 会默认生成两个jar包 , 一个以-结尾 , 这个我们可以配置更改 , 示例如下:
...
文章插图
则会生成以-结尾的jar包 。
可执行jar包
要创建一个可执行uber-jar包 , 也可以将入口添加进来 , 示例如下:
shade.test shade.test
- 终极版解决OneNote无法跳转链接:您的组织策略阻止我们为您完成此操作
- RFID智能化档案管理解决方案
- 司马懿死前留下了这么个大问题,之后竟数百年没有解决
- win10使用uefi+gpt启动蓝屏的解决方法
- 进PE系统后看不到硬盘的原因及解决办法
- PDF为什么不能编辑?总结三种原因,附解决办法~
- 那么遇到了无法编辑的PDF文件应该如何解决呢?
- win10系统打开计算机慢,Windows10系统打开文件夹速度很慢如何解决
- 如何解决 :libstdc++.so
- gerrit出现Merge Conflict,小白解决心路历程