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的更多知识还是有待增强的,需要进行一个系统的学习,期待后续。

相关推荐
Boop_wu4 分钟前
[Java EE进阶] 图书管理系统(2)
spring·java-ee·maven·mybatis·状态模式
aLTttY1 小时前
Spring Boot 3.x 集成 AI 大模型实战指南
人工智能·spring boot·后端
凤山老林2 小时前
Spring Boot 集成 TigerGraph 实现图谱分析技术方案
java·spring boot·后端·图谱分析·tigergraph
.生产的驴2 小时前
SpringBoot 大文件分片上传 文件切片、断点续传与性能优化 切片技术与优化方案 文件高效上传
java·服务器·spring boot·后端·spring·spring cloud·状态模式
m0_3801138414 小时前
补单系统搭建及源码分享
数据库·spring boot·mybatis
练习时长一年14 小时前
Spring配置类的演化
java·spring boot·spring
阿丰资源15 小时前
基于SpringBoot+MySQL的社区团购系统设计与实现(附源码+文档+数据库,直接运行)
数据库·spring boot·mysql
阿丰资源15 小时前
基于SpringBoot+MySQL的网上订餐系统(附源码)
spring boot·后端·mysql
希望永不加班15 小时前
SpringBoot 敏感数据脱敏(序列化层)
java·spring boot·后端·spring
希望永不加班15 小时前
SpringBoot 数据库索引优化:慢查询分析
java·数据库·spring boot·后端·spring