印象最深的一个bug-maven父子模块依赖关系

简介: 印象最深的一个bug-maven父子模块依赖关系

最近遇到一个奇葩问题,记录一下

搭建一个springboot父子模块项目,父模块为elk,子模块为springboot-elasticsearch

遇到的问题是 在父模块中引入了spring-boot-dependencies,来管理springboot的版本,但是在子模块中一直报spring-boot-starter-data-elasticsearch的版本缺失

正常情况下,spring-boot-dependencies里已经有了spring-boot相关jar包的版本声明,子模块应该会继承父模块的所有版本才对

在清理,clean,重启等等无效操作之后,开始百度...

记录一下尝试操作:

  1. 在子模块添加<relativePath>../pom.xml</relativePath>
  1. 结果无效
  2. 说明下该属性的作用: 不加该属性也会有默认值 ../pom.xml(上级目录) maven查询依赖的顺序 relativePath中的地址->本地仓库->远端仓库, 将此属性设置为空,就会一直从仓库获取
  1. 给所有子模块加上版本号
  1. 有效
  2. 但是违背了统一版本管理的初衷,只是证明jar包环境没问题,还是哪里的程序有问题
  1. dependenciesManagement 设置scope为import (有效)
  1. 最终答案就是这个
  2. 正常情况下dependencies的scope只有(provided,compile,system,test,runtime)几个,但是dependenciesManagement 中可以使用import,引入该包的依赖pom,注意import只能在dependenciesManagement 中使用

特此记录!!!!

目录
相关文章
|
6月前
|
Java Maven 数据安全/隐私保护
弄懂maven仓库 & 仓库优先级 & settings & pom配置关系及差异
弄懂maven仓库 & 仓库优先级 & settings & pom配置关系及差异
1864 1
|
数据可视化 JavaScript 前端开发
不太的常用依赖
不太的常用依赖
73 0
|
6月前
|
Java Maven
Maven高级-分模块开发和设计及依赖管理
Maven高级-分模块开发和设计及依赖管理
78 0
|
3月前
|
XML Java Maven
"Maven项目模块化大揭秘!掌握Model间最佳继承设计,让你的代码优雅如诗,项目维护不再愁!"
【8月更文挑战第11天】Maven是Java项目中常用的构建工具,其模块化特性对大型项目的管理至关重要。本文介绍Maven中的继承与聚合机制,指导如何通过继承消除重复配置,以及如何通过聚合统一构建多个模块。遵循单一职责原则,文章建议按功能划分模块,并提供了父POM与子POM的配置示例。此外,还讨论了适度模块化、依赖管理的原则,帮助提升项目的可维护性和扩展性。
51 4
|
3月前
|
Java Maven 开发者
"揭秘IDEA的神奇助手:Maven Helper插件,让你轻松驾驭复杂依赖,告别冲突噩梦!"
【8月更文挑战第20天】Maven Helper是一款提升Java开发者工作效率的IDEA插件,它能直观展示项目依赖关系并协助管理。主要功能包括依赖树视图、冲突检测与解决及依赖排除。安装简便,重启IDEA后即用。借助其“Dependencies”面板,开发者可以清晰了解依赖详情,快速定位并解决冲突问题,有效优化项目结构,提升开发效率。
230 0
|
5月前
|
SpringCloudAlibaba Java Maven
关于拆分boot工程的踩坑之maven多模块间的依赖关系处理
关于拆分boot工程的踩坑之maven多模块间的依赖关系处理
|
6月前
|
安全 前端开发 Java
安全同学讲Maven重打包的故事
经过去年的Log4j-core的治理工作,我们通过Maven的依赖仲裁机制,在蚂蚁集团静态代码扫描平台-STC 和资产威胁透视-哈勃2款产品的联动合作下,很好的完成了直接依赖和间接依赖场景下的治理工作。但路还很远,新的场景层出不穷,故事还远远没有结束,我们要做的事情还非常多。
157 12
|
6月前
|
Java Maven
【亮剑】Java项目开发中常遇到Jar 包依赖冲突问题,主要由不同版本库、循环依赖、传递依赖和依赖范围不当引起
【4月更文挑战第30天】Java项目开发中常遇到依赖冲突问题,主要由不同版本库、循环依赖、传递依赖和依赖范围不当引起。解决冲突需分析依赖树、定位冲突源、调整类加载顺序等。方法包括排除冲突依赖、统一管理版本、限定依赖范围、合并冲突类、升级降级库版本及拆分模块。关注依赖关系,及时解决冲突,保障项目稳定运行。
424 0
|
6月前
|
缓存 Java Maven
Maven找不到依赖终极解决方案
Maven找不到依赖终极解决方案
607 0
|
供应链 安全 Java
安全同学讲Maven间接依赖场景的仲裁机制
去年的Log4j-core的安全问题,再次把供应链安全推向了高潮。在供应链安全的场景,蚂蚁集团在静态代码扫描平台-STC和资产威胁透视平台-哈勃这2款产品在联合合作下,优势互补,很好的解决了直接依赖和间接依赖的场景。但是由于STC是基于事前,受限于扫描效率存在遗漏的风险面,而哈勃又是基于事后,存在修复时间上的风险。基于此,笔者尝试寻找一种方式可以同时解决2款产品的短板。
安全同学讲Maven间接依赖场景的仲裁机制

推荐镜像

更多