什么是shaded jar
spring -boot-maven-plugin,提到了maven shade plugin。
maven shaded plugin的作用:
- 选择内容,并打包成uber jar
- 将类换个位置。为类重新编码,将类换个位置(包的路径也因此改变)
- attach shaded组件。默认情况将main组件替换成shaded组件,如果两个都需要保留(安装或部署),则可以配置attach shaded组件。
- 打包成可执行jar。只需要指定main类及路径。
- 转换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相关推荐
- maven打包报错:Error creating shaded jar: invalid LOC header (bad signature)
使用maven打包时一直报错,打包命令:mvn clean install -Dmaven.test.skip=true -P product 报错如下: 根据提示使用 -X 参数debug,命令:m ...
- Maven:maven-shade-plugin, 打包失败, MojoExecutionException: Error creating shaded jar: null
1.背景 使用袋鼠云的FlinkSQL这个git仓库的东西,拿出来,然后组成了我想自测的案例,然后项目结构如下 然后打包报错 [INFO] flink-v172-platform 1.0-SNAPSH ...
- 如何使用Maven创建具有依赖项的可执行JAR?
我想将我的项目打包在一个可执行的JAR中进行分发. 如何使Maven项目将所有依赖项JAR打包到我的输出JAR中? #1楼 刘坚认为是对的. Maven依赖插件允许您扩展所有依赖,然后可以将其视为资源 ...
- 什么是 Fat/Shade/Shadow Jar
什么是 Fat/Shade/Shadow Jar ? 问题 java -jar xxx.jar 执行时找不到主类 或 ClassNotFoundException 引入的 jar 包中依赖冲突了怎么办 ...
- Dubbo下载-从missing artifactId说起
项目pom文件引入dubbo 报 missing artifactId https://github.com/dangdangdotcom/dubbox 从GitHub上直接下载解压包, 最好下载分支 ...
- spark 1.4 编译
在官网直接下载最新的1.4代码 http://d3kbcqa49mib13.cloudfront.net/spark-1.4.0.tgz 解压后执行编译,但是需要配置下环境 JDK Scala Mav ...
- Spark 1.2 编译
1:下载 wget http://d3kbcqa49mib13.cloudfront.net/spark-1.2.0.tgz [jifeng@feng02 hadoop]$ wget http://d ...
- spark-jar冲突解决方案
文章目录 1. 问题描述 2. spark on yarn cluster模式的解决方案 3. 使用maven-shade-plugin 1. 问题描述 spark项目的包和cdh集群中的冲突了, ...
- Storm-Flux简介
Fluk Fluk是storm中的一个框架,主要功能是简化storm 任务在管理.配置topology中的一些问题和麻烦. 产生的原因背景 在管理storm 的topolgy的过程中,我们最常做的工作 ...
最新文章
- 专家首次释疑“接触传播”:手污染到病毒后,再揉眼睛可能会感染
- Spark广播变量使用示例
- Dalvik内存管理
- 世界备份日,您的数据足够安全吗?
- 纯新手入门机器/深度学习自学指南(附一个月速成方案)
- 【论文写作】网上选课系统中模块设计如何写
- 大话Neo系列:Merkle Tree
- LaTeX简历模版,自己瞎做的,请多指教
- 高等数学——多元函数极值的定义
- RE写作Issue问题题库分析与提纲
- [已解决]Could not create connection to database server.错误的解决方法
- 实习僧[shixiseng.com]爬虫实战笔记
- 利用WireShark分析H264码流
- .NET Core 编程指南中文版 —— 7.4 迁移 - 从 DNX 迁移
- Google着手与 Open AI 合作预防人工智能暴走
- APS供应链计划管理有何功能?其目的和意义又是什么?
- Re:从0开始的微服务架构:(二)如何快速体验微服务架构?
- Win7 时间不准不能自动同步,执行w32tm /register发生下列错误: 拒绝访问(0x80070005)
- Java小白 前端后端开发 环境搭建【jdk+idea+webstorm+maven+nodejs+vue+mysql】
- svm公式推导及理解