Maven 继承/聚合的一些实践

本文探讨了在软件开发中不同模块之间的依赖关系对构建顺序的影响。分为三种情况:无共同父类、有共同父类但仅继承、有共同父类且包含继承和聚合。总结了在这些情况下如何正确构建Son1、Son2等子模块,以及如何通过调整构建策略以提高效率,例如使用mvn clean install命令的特定参数来仅构建目标模块。
摘要由CSDN通过智能技术生成

1.Son1和Son2无共同父类

Son1

Son2

Son1和Son2 是两个单独的模块,其中Son2引用Son1。

结论:只要先install Son1成功,不管Son2是都有Parent,那么Son2都可以build成功。

2.Son1和Son2有共同父类,只继承无聚合

Parent
|--------->Son1
|--------->Son2

Parent下一个有两个子类 Son1和Son2。他们之间只实现了继承关系。即Son1和Son2继承自同一个父Parent。同时Son2中引用Son1。

结论:

Son1只是依赖三方,那么在不提前build Parent的前提下可以build Son1成功;

Son2除了三方外还依赖了Son1,那么build Son2的时候 就需要提前install Parent和Son1才能成功。缺任何一个都会失败。

3.Son1和Son2有共同父类,继承和聚合

Parent
|--------->Son1
|--------->Son2
|--------->Son3

Parent下一个有三个子类 Son1和Son2和Son3。Son1和Son2和Son3继承自同一个父Parent。同时Son2中引用Son1。

结论:

Son1和Son3只是依赖三方,那么在不提前build Parent的前提下分别可以build Son1和Son3成功;

Son2除了三方外还依赖了Son1,那么build Son2的时候 就需要提前install Parent和Son1才能成功。而Parent又聚合了Son1和Son2和Son3,所以install Parent就意味着所有的Son都要install。

所以如果只想buildSon2,可以在Parent的pom处执行 mvn clean install -pl Son2 -am。这样的话 就只会执行与Son2有关的相应模块。

[INFO] Parent ............................................. SUCCESS [  0.555 s]

[INFO] Son1 ............................................... SUCCESS [  3.234 s]

[INFO] Son2 ............................................... SUCCESS [  1.067 s]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值