当前位置: 首页 > article >正文

springboot项目使用maven打包,第三方jar问题

springboot项目使用maven package打包为可执行jar后,第三方jar会被打包进去吗?

答案是肯定的。做了实验如下:

第三方jar的项目结构及jar包结构如下:(该第三方jar采用的是maven工程,打包为普通jar(非可执行jar,没有主类),发现maven工程在maven package后,依赖的jar包不会被一起打包)
在这里插入图片描述
在这里插入图片描述
将上面的jar包安装到本地maven仓库后,在其他的springboot项目中引用该starter,过程如下:
在这里插入图片描述
在这里插入图片描述
该springboot项目使用maven package打包为可执行jar包后,观察jar包结构:
在这里插入图片描述
在META-INF中有一个MANIFEST.MF文件,描述了boot项目的一些属性。
在这里插入图片描述
在这里插入图片描述
找到指定目录查看,果然在这里。所以部署在服务器上的boot项目应该是这样找到依赖的第三方jar的。
在这里插入图片描述

再观察一下被打包进来的jar的目录结构:
在这里插入图片描述
可以发现,和导入前的jar结构完全一致。

扩展
上面已经发现:maven工程在maven package后,依赖的jar包不会被一起打包。
假如maven工程A通过pom导入了maven工程B的jar,但是打包maven工程A时,B不会被打包进去。那么当一个springboot工程C通过maven导入了A使用时,会不会因为缺失B而报错呢?这个我做了一下实验,发现并不会。C导入A后,B也出现在了C的External Libraries列表中,并且打包C为可执行jar后,A、B两个jar同时出现在了BOOT-INF/lib下,并不会出现问题。

截图记录下:
1、这是项目A的结构,项目A是maven项目,打包后,B不会被打包进去
在这里插入图片描述
2、这是springboot项目C
在这里插入图片描述
在这里插入图片描述在这里插入图片描述


maven的更多知识还是有待增强的,需要进行一个系统的学习,期待后续。


http://www.kler.cn/a/410480.html

相关文章:

  • FreeRTOS之链表源码分析
  • Matlab 深度学习工具箱 案例学习与测试————求二阶微分方程
  • 实验二 系统响应及系统稳定性
  • 大数据实验4-HBase
  • CSS中calc语法不生效
  • 搜索插入位置
  • Java基础--输入输出
  • STM32 Keil5 attribute 关键字的用法
  • Java爬虫:数据采集的强大工具
  • Perl 简介
  • react函数式组件中的路由传参方式
  • 智慧环保大数据解决方案
  • 如何防止序列化破坏单例模式
  • 探索C/C++的奥秘之stack和queue
  • Python 数据分析核心库大全!
  • 《Python游戏编程入门》注-第8章5
  • go语言range的高级用法-使用range来接收通道里面的数据
  • spark 3.4.4 利用Spark ML中的交叉验证、管道流实现鸢尾花分类预测案例选取最优模型
  • 【zookeeper03】消息队列与微服务之zookeeper集群部署
  • 网络新技术新应用在网络安全领域的发展特点
  • 【GL004】Linux
  • vue3 reactive响应式实现源码
  • CTO 实际上是做什么的?
  • IP Transit國外頻寬使用最高優先權,國內直接與骨幹互連
  • archlinux 触摸板手势配置
  • crmeb 分享商品 邀请码 bug 修复 记录