什么是shaded jar

什么是shaded jar,第1张

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/871616.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存