Apache Maven项目提供的Shade插件,能够将Maven应用打包为超级的uber-jar(也称为fat jar,或shaded jar)。即在打包的过程中,可以:

  • 包含依赖库
  • 重命名依赖库的包名(以避免类库的冲突)
  • 有选择地打包

Shade插件的最新版本是2017.8.19发布的3.1.0。
1. goals

  • shade,默认加入到Maven的package阶段

2. 插件的基本用法
1) 编辑项目的pom.xml,配置插件

      <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.1.0</version><configuration><!-- put your configurations here --></configuration><executions><execution><phase>package</phase><goals><goal>shade</goal></goals></execution></executions></plugin>

2) 执行mvn package

3. 只把Maven应用需要的依赖库打包

<configuration><minimizeJar>true</minimizeJar>
</configuration>

4. 改变默认包名(以避免冲突)

<configuration><relocations><relocation><pattern>com.ericsson.old.util</pattern><shadedPattern>com.ericsson.new.util</shadedPattern></relocation></relocations>
</configuration>

5. 可执行的jar包

            <configuration><transformers><transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>com.ericsson.bbauto.Entrance</mainClass></transformer></transformers></configuration>

            <configuration><transformers><transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><manifestEntries><Main-Class>com.ericsson.bbauto.Entrance</Main-Class><Build-Number>1.23</Build-Number></manifestEntries></transformer></transformers></configuration>

说明:这里使用了资源转换器ManifestResourceTransformer。

Shade插件提供了如下多种资源转换器,详见Resource Transformers。

参考链接:

http://maven.apache.org/plugins/maven-shade-plugin/

Apache Maven Shade插件详解相关推荐

  1. maven常用插件详解

    1. 简介 我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说, ...

  2. 发布个人项目jar包到maven中央仓库详解

    发布个人项目jar包到maven中央仓库详解 1.在sonatype提交发布工单(Issue) sonatype是由社区支持的开源项目托管服务(Open Source Project Reposito ...

  3. [Apache Maven Shade Plugin] [example] [001] 官方例子:includes-excludes

    链接地址:[Selecting Contents for Uber JAR](http://maven.apache.org/plugins/maven-shade-plugin/examples/i ...

  4. Eclipse中Maven常用命令以及Maven生命周期详解

    Eclipse中maven常用的命令 在某一个maven项目右键快捷方式,然后点击Run As就可以发现几个Maven的命令: Maven Build: 这个命令用于编译Maven工程,执行命令后会在 ...

  5. fullcalendar php,php使用fullcalendar日历插件详解,fullcalendar日历

    php使用fullcalendar日历插件详解,fullcalendar日历 最近做课程表的项目,找了好多个插件感觉都不好用,无意间看到了fullcalendar,还挺简单的,很方便,先贴一张项目页面 ...

  6. Logstash(二)input、codec插件详解

    input input 插件指定数据输入源,一个pipeline可以有多个input插件,我们主要讲解下面的几个input插件: - stdin- file- kafka Input Plugin – ...

  7. Apache+PHP配置过程详解

    Apache+PHP配置过程详解 经过两晚上的奋斗终于将Apache配置PHP成功,安装配置过程中走了不少弯路,特记录之. 1.Apache配置PHP个人认为首先要注意的是Apache和PHP的版本信 ...

  8. Apache Thrift - java开发详解

    2019独角兽企业重金招聘Python工程师标准>>> Apache Thrift - java开发详解 博客分类: java 架构 中间件 1.添加依赖 jar <depen ...

  9. 我的世界服务器物品绑定插件,我的世界灵魂绑定插件详解

    我的世界灵魂绑定插件详解.那下面给大家分享的是关于灵魂插件的用途详细介绍,还有关于我的世界服务器防止熊孩子盗窃插件用途介绍哦~希望对大家有所帮助. 游戏园我的世界官方群:325049520(已满)二群 ...

最新文章

  1. 真爱!微软宣布新开源网站,由 Jekyll 一键生成,代码所见即所得
  2. spring cloud的网关服务Zuul
  3. Python生物信息学⑥绘制热图及火山图
  4. 快讯 | 清华数为物联网数据库IoTDB被评为“优秀大数据产品”
  5. 和与余数的和同余理解_5 同余 ——数论入门知识讲解系列
  6. python 面向对象编程 之 上下文管理协议
  7. Android之自定义ContentProvider详解
  8. 大于2T硬盘通过UEFI启动+GPT分区表安装Server 2008 R2
  9. 单调栈解决维持相对位置不变最小/最大字典序问题
  10. html alert 确认加事件,js事件中有alert执行顺序的问题
  11. Unity3d大会的部分总结
  12. 递归法:汉诺塔(快速掌握)
  13. java标签文本框,Java_3 文本B01.txt:创建带有标签和文本框的窗体 联合开发网 - pudn.com...
  14. Canny边缘检测非极大值抑制法在双立方插值(Bicubic)图像边缘优化
  15. 如何寻找计算机领域的英文文献?
  16. 支付宝小程序: h5跳转 小程序
  17. oracle if语句使用方法,Oracle IF语句的使用
  18. Python Random随机数
  19. 使用 Flutter 加速应用开发
  20. 学Python最基本20个代码__1

热门文章

  1. Leetcode刷题笔记
  2. 用户DSN,系统DSN,文件DSN的区别
  3. ICU — i18n — i10n
  4. 总结:会签任务一票否决
  5. php采集汽车之家demo,Python 爬虫实例(15) 爬取 汽车之家(汽车授权经销商)...
  6. 计算机毕业设计SSM房屋租赁系统【附源码数据库】
  7. Cadence基础知识8(3W原则的实质以及20H原则最强整理)
  8. 引用账户锁定无法登录_win10系统无法登陆提示引用账户当前已锁定,且可能无法登录的解决方法...
  9. 空间域滤波与频率域滤波比较
  10. 为什么在Unix下编程,而不在Linux下编程