一个pom文件中出现了两个相同的依赖_maven多模块和依赖冲突问题汇总记录

本文介绍了在Maven项目中如何创建多模块(父子模块结构),详细讲解了父子模块的区别,以及如何将项目改造为Spring Boot多模块。同时,文章探讨了Maven依赖的传递原则(最短路径原则和最先声明原则),并提供了解决依赖冲突的方法,包括锁定版本法和排除冲突依赖的工具。最后,建议编写干净的POM文件,并分享了检查未使用和重复依赖的Maven命令。
摘要由CSDN通过智能技术生成

目录

前言:

今天学习和总结了一下maven的相关知识点,发现一些比较基础的东西居然也会忘记,这里对于一些日常工作中可能会遇到的问题进行了一下汇总。

idea怎么创建maven多module的项目

首先了解上面是多module?

一句话概括就是:一个父模块作为版本控制多个子模块,子模块负责接入到父模块当中作为整个项目的过程。

多Module管理项目的几种方式:按照单模块拆分为多个子模块,比如将MVC三层架构拆分为 xxx-service,xxx-dao,xxx-model,不过这种方式个人感觉比较二,目前以业务模块拆分比较多,迁移到微服务比如用springcloude或者dubbo 的时候非常好用。

按照业务模块拆分,这种模式使用的比较多,也比较多见。

创建一个多module项目(idea2019.3.3版本)

创建一个父pom项目:打开idea,选择create new project

选择maven项目,同时不选任何的预加载设置

父pom配置如下:

删除src 目录

创建子模块,引入到父pom里面同样右击项目工程,选择new module,然后选择maven,这时候会出现父模块以及对应的子模块名称

此时在父模块里面发现引入了子模块的内容

子父模块的区别:

父pom.xml文件内容:org.zxd

taglib

pom

1.0.0

taglib-core

分为两个部分,一个部分是父pom的声明,包含gourpId,artifactId,打包方式必须是pom,因为使用了聚合模型,同时在父pom里面指定版本号,子模块不填写version会默认使用父pom的version号

taglib-core

上面表示当前引入的子模块内容

子pom.xml文件内容:

taglib

org.zxd

1.0.0

jar

4.0.0

taglib-core

1.0.0

子模块之间进行互相的依赖

在下面的pom中可以在任意的子模块引入对应的父模块依赖

注意由于这个标签会递归继承,所以要注意子依赖不要和依赖引入不同版本的依赖,这样容易造成冲突

org.zxd

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值