spring -boot-maven-plugin,提到了maven shade plugin。
maven shaded plugin的作用:

  1. 选择内容,并打包成uber jar
  2. 将类换个位置。为类重新编码,将类换个位置(包的路径也因此改变)
  3. attach shaded组件。默认情况将main组件替换成shaded组件,如果两个都需要保留(安装或部署),则可以配置attach shaded组件。
  4. 打包成可执行jar。只需要指定main类及路径。
  5. 转换resource(有些resource文件,用到了类及其路径,需要转换)

在阅读上面文字过程中,遇到几个概念。
uber jar
又叫做fat jar和over jar。含义是一个jar文件中,既有自己的代码,也有依赖。可以作为一个独立的依赖提供出去,也可以作为一个web应用运行。
shaded jar
又叫做renamed jar。uber jar在作为依赖提供出去的时候,使用方有同名依赖(可能版本不同),这时就会有冲突的可能性,因此在打包成uber jar时,将这些依赖重命名。maven shade plugin的做法是,重新编码类文件,包括自己的类和依赖的类。这样做也容易带来问题,因此在elastic的jar高版本时,不再对它的依赖重命名了(这些被重命名的依赖,就是shaded dependencies)
artifact
直译是"工件"。将一组组件打包成集合实现一定的功能。例如编译的Java类的集合或打包在Java包中的Java应用程序、作为目录结构的Web应用程序或Web应用程序存档,等等。

详见:
https://docs.spring.io/spring-boot/docs/current/maven-plugin/reference/htmlsingle/
https://maven.apache.org/plugins/maven-shade-plugin/examples/attached-artifact.html
https://softwareengineering.stackexchange.com/questions/297276/what-is-a-shaded-java-dependency
https://www.jetbrains.com/help/idea/working-with-artifacts.html

什么是shaded jar相关推荐

  1. maven打包报错:Error creating shaded jar: invalid LOC header (bad signature)

    使用maven打包时一直报错,打包命令:mvn clean install -Dmaven.test.skip=true -P product 报错如下: 根据提示使用 -X 参数debug,命令:m ...

  2. Maven:maven-shade-plugin, 打包失败, MojoExecutionException: Error creating shaded jar: null

    1.背景 使用袋鼠云的FlinkSQL这个git仓库的东西,拿出来,然后组成了我想自测的案例,然后项目结构如下 然后打包报错 [INFO] flink-v172-platform 1.0-SNAPSH ...

  3. 如何使用Maven创建具有依赖项的可执行JAR?

    我想将我的项目打包在一个可执行的JAR中进行分发. 如何使Maven项目将所有依赖项JAR打包到我的输出JAR中? #1楼 刘坚认为是对的. Maven依赖插件允许您扩展所有依赖,然后可以将其视为资源 ...

  4. 什么是 Fat/Shade/Shadow Jar

    什么是 Fat/Shade/Shadow Jar ? 问题 java -jar xxx.jar 执行时找不到主类 或 ClassNotFoundException 引入的 jar 包中依赖冲突了怎么办 ...

  5. Dubbo下载-从missing artifactId说起

    项目pom文件引入dubbo 报 missing artifactId https://github.com/dangdangdotcom/dubbox 从GitHub上直接下载解压包, 最好下载分支 ...

  6. spark 1.4 编译

    在官网直接下载最新的1.4代码 http://d3kbcqa49mib13.cloudfront.net/spark-1.4.0.tgz 解压后执行编译,但是需要配置下环境 JDK Scala Mav ...

  7. Spark 1.2 编译

    1:下载 wget http://d3kbcqa49mib13.cloudfront.net/spark-1.2.0.tgz [jifeng@feng02 hadoop]$ wget http://d ...

  8. spark-jar冲突解决方案

    文章目录 1. 问题描述 2. spark on yarn cluster模式的解决方案 3. 使用maven-shade-plugin 1. 问题描述   spark项目的包和cdh集群中的冲突了, ...

  9. Storm-Flux简介

    Fluk Fluk是storm中的一个框架,主要功能是简化storm 任务在管理.配置topology中的一些问题和麻烦. 产生的原因背景 在管理storm 的topolgy的过程中,我们最常做的工作 ...

最新文章

  1. 专家首次释疑“接触传播”:手污染到病毒后,再揉眼睛可能会感染
  2. Spark广播变量使用示例
  3. Dalvik内存管理
  4. 世界备份日,您的数据足够安全吗?
  5. 纯新手入门机器/深度学习自学指南(附一个月速成方案)
  6. 【论文写作】网上选课系统中模块设计如何写
  7. 大话Neo系列:Merkle Tree
  8. LaTeX简历模版,自己瞎做的,请多指教
  9. 高等数学——多元函数极值的定义
  10. RE写作Issue问题题库分析与提纲
  11. [已解决]Could not create connection to database server.错误的解决方法
  12. 实习僧[shixiseng.com]爬虫实战笔记
  13. 利用WireShark分析H264码流
  14. .NET Core 编程指南中文版 —— 7.4 迁移 - 从 DNX 迁移
  15. Google着手与 Open AI 合作预防人工智能暴走
  16. APS供应链计划管理有何功能?其目的和意义又是什么?
  17. Re:从0开始的微服务架构:(二)如何快速体验微服务架构?
  18. Win7 时间不准不能自动同步,执行w32tm /register发生下列错误: 拒绝访问(0x80070005)
  19. Java小白 前端后端开发 环境搭建【jdk+idea+webstorm+maven+nodejs+vue+mysql】
  20. svm公式推导及理解

热门文章

  1. 央行发布国内金融行业首个区块链标准 法定数字货币DCEP呼之欲出
  2. 有道难题之eaglet的算法
  3. 啸叫抑制SDK原理简介和解决办法
  4. 企业搭建会员积分体系容易踩哪些坑?
  5. 计算机专业大学活动,计算机专业大学生活动策划方案_旅游专业大学生活动策划方案.doc...
  6. 使用IIS完成域名重定向
  7. C语言——生命游戏(进阶
  8. uni-app 制作 物流信息 step样式表
  9. 爱奇艺的LOGO是怎么设置的呢-零基础学平面设计
  10. MODIS Swath (GEOTIFF) 数据的拼接与均值运算-Python实现