Maven高级-详解Maven的继承与聚合

目录

一、引入

二、Maven的继承

1.1 依赖被重复调用的解决

1.1.1 存在问题:

1.1.2 解决方法:

1.1.2.1 实现Maven继承

1.2 依赖版本管理和修改繁琐的解决

1.2.1 存在问题:

1.2.2 解决方法:

1.2.2.1 实现Maven继承的版本管理

三、Maven的聚合

1.1 项目生命周期执行繁琐的解决

1.1.1 存在问题:

1.1.2 解决方法:

1.1.2.1 实现Maven聚合

四、总结

4.1 继承与聚合

4.2 小结 


一、引入

maven是一款构建和管理java项目的工具。

在实际的开发场景中,我们一般会将一个项目拆分为多个模块,让每个模块实现自己特定的功能。这样一来,极大方便了项目的管理、维护、拓展,也方便了模块之间的相互调用、共享资源。这种思想是高级maven的基础。

但是我们在分模块设计的时候还会遇到一些比较繁琐的操作:

  • 有一些依赖在每一个项目内都被调用,使用起来非常繁琐(继承解决)
  • 有些依赖并不一定被每个项目调用,但是也有多个项目调用的情况,那么这个时候依赖的版本如果要修改就会很麻烦,需要到每一个项目的pom文件中去注意修改,而且会有以来版本不一致的风险(继承解决)
  • 在项目进行打包的时候,需要逐级根据依赖关系进行一一打包,也非常繁琐(聚合解决)

那么如果来解决这些问题呢?那就是项目的继承聚合。


二、Maven的继承

1.1 依赖被重复调用的解决

1.1.1 存在问题:

打个比方,如果我们在三个模块中都引入了一个Lombok依赖,那么在以后的开发中,如果做一个大型的项目,这些重复被调用的依赖会非常多,而且项目的数量也会非常多,这种方法是不是非常的繁琐?

1.1.2 解决方法:

  1. 再创建一个父工程 tlias-parent
  2. 然后让上述的三个模块 tlias-pojo、tlias-utils、tlias-web-management 都来继承这个父工程 
  3. 将各个模块中都共有的依赖,都提取到父工程 tlias-parent中进行配置,只要子工程继承了父工程,依赖它也会继承下来

这样就无需在各个子工程中进行配置了。

但是在对设想进行实践之前,还要插入一个小细节  --->>>

细节:在Maven的继承中,一个子项目,对应一个父工程。(一个儿子不能有多个父亲)

但是在项目当中,启动项目是一个springboot项目,而springboot项目都会有一个统一的父工程,就是spring-boot-starter-parent

假设tlias-web-management是一个启动项目:

  • 它既要继承一个自定义的父工程,简化繁琐的依赖引入
  • 又想不影响其继承springboot框架的父工程spring-boot-starter-parent

它既要又要该怎么办?

我们不妨联想一下Java中的继承,虽然不能多继承,但是不是可以进行多层继承呀

-------解决:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值