pom文件中的dependencyManagement和dependencies的区别
2021-07-09
dependencies
子项目中,自动继承父项目中的相关依赖
dependencyManagement
只是声明依赖,并不实现引入,因此子项目中需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖,并且没有指定版本,才会从父项目中继承该项,并且version和scope都读取父项目中的pom;如果子项目中指定了版本号,那么才会使用子项目中指定的jar版本
下面看一个例子,用idea建立一个parent父项目,然后在parent项目中建立一个child子项目,如下图所示:
在父项目中,在dependencies引入commons-lang3包,如下图所示
然后我们去看下子项目下的依赖情况, 子项目自动引入父项目依赖包,如图所示:
接下来看下dependencyManageMent引入情况,在parent引入mysql-connector-java包,如图所示
查看子项目中的依赖情况,并没有引入mysql-connector-java
在子项目中显示的引入包,但是没有指定版本号,如下图所示
从图中看出,引入进来的版本与父项目声明的版本号一致
dependencies
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构