maven项目整合多模块之聚和标签module和继承标签parent

本文深入探讨Maven中parent与dependencyManagement的概念,解析如何通过<parent>标签实现项目间的继承,以及如何利用<dependencyManagement>管理依赖,避免冗余,提升模块化项目的效率。

之所以将这两个标签放在一起讲,是因为最近在做项目时对于多个模块的继承和管理遇到一些问题

parent

在maven中也有继承的概念,那我们熟悉的springboot来举例,因为它大量使用了继承

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.6.RELEASE</version>
</parent>

而他的父项目是

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-dependencies</artifactId>
  <version>2.2.6.RELEASE</version>
  <relativePath>../../spring-boot-dependencies</relativePath>
</parent>

dependencies才是我们真正管理依赖的项目,包括各种的版本控制,以后我们导入依赖默认是不需要写版本;(没有在dependencies里面管理的依赖自然需要声明版本号)

发现问题

我们都知道,springboot自带许多的jar也就是依赖,我们不可能全部需要这些依赖,如果不采取措施,那我一个简单的项目也会非常庞大,springboot以及想好了办法解决

<dependencyManagement>

springboot将他管理的所有依赖用<dependencyManagement>包起来,不信的小伙伴我给你们看一下截图
在这里插入图片描述
看到了没,只要被这个标签包起来的依赖,在继承关系下子项目想要使用父项目的依赖,必须写

<dependency>
    <groupId></groupId>
    <artifactId></artifactId>
</dependency>

这段代码来引用所需的依赖!,举个例子,A是B,C的父项目,B需要使用A中的web功能,不需要jdbc功能,C需要使用A的jdbc功能,不需要web功能,那么只需要B和C分别引入各自的依赖即可,也不必担心多余的依赖

Module

这里举个简单的例子,有三个项目A,B,C,其中A含有B,C两个模块,在引入<module>之前,我在们进行清理,刷新或者打包时会一个一个的进行操作,很麻烦,这时候需要对其中一个进行操作,其他的也能进行相同的操作,<module>就是完成这种功能

<modelVersion>4.0.0</modelVersion>
    <groupId>com.rwh.gulimall</groupId>
    <artifactId>Demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>Demo</name>
    <description>聚合服务</description>
    <packaging>pom</packaging>

    <modules>
        <module>Demo-coupon</module>
        <module>Demo-member</module>
        <module>Demo-order</module>
        <module>Demo-product</module>
        <module>Demo-ware</module>
        <module>Demo-fast</module>
        <module>Demo-generator</module>
    </modules>

就拿这段代码来说,对Demo的操作的同时,也对他里面的modules进行了相同操作

文章最后提一下<packaging>pom</packaging>的作用:
在聚合多模块的时候,这时候都会有一个父级项目,pom文件一个重要的属性就是packaging(打包类型),一般来说所有的父级项目的packaging都为pom,packaging默认类型jar类型,如果不做配置,maven会将该项目打成jar包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值