Maven项目代码组织形式

Maven项目代码组织形式

写在2022年的最后一天,谨以此纪念过去的2022年。

1.代码组织形式

一般来说有两种比较常见的形式:

  • 平铺
  • 父子结构

1.1平铺

这种结构下,parent父工程和各个子工程是平级的,处于同一个目录下,在指定model时,由于md-dao和md-service和parent的pom.xml不在同一个目录下,所以使用了相对路径,相对路径的参考依据时parenr的pom.xml文件位置。
在这里插入图片描述
子工程需要使用relativePath 节点去指定 parent 的 pom.xml 文件位置
在这里插入图片描述

1.2父子结构

这种结构看起来层次分明,父子关系一眼就能看出来,子工程位于parent目录里面和pom.xml文件同级,所以model也不需要相对路径了
在这里插入图片描述
子工程也不需要relativePath 节点去指定 parent 的 pom.xml 文件位置了,因为 parent 的 pom.xml 和各个子模块处于同一目录下
在这里插入图片描述

2.依赖管理

子工程继承了父工程的pom文件之后,父工程添加了依赖,子工程都会无条件的继承
在这里插入图片描述
无条件继承父亲的依赖,会使子工程变得臃肿,继承一些它不需要的依赖,此时我们可以使用dependencyManagement标签进行依赖的管理,在需要该依赖的子工程再去添加即可。
在这里插入图片描述
在这里插入图片描述

3.打包问题

3.1继承

有的时候,单纯只是想通过 parent 来统一管理不同的项目的依赖,并非一个聚合项目。
这个时候只需要去掉 parent 的 pom.xml 中的 modules 节点及其中的内容即可,这样就不是聚合工程了,各个子模块也可以独立打包。

3.2聚合

大部分情况下我们都是聚合工程,此时打包可以直接从parent工程统一打包。

最后祝大家新年快乐,越来越好!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值