Maven管理多模块应用笔记


首先,无论是哪一种方式,作为父工程必须删除src文件和把packing改成pom
若不删除父工程src文件则子工程不能新建java包文件和java类等。
因为父工程下存在一个直系src的java工程了,子工程就不可以新建为java工程。
在这里插入图片描述

项目样例:

在这里插入图片描述

父工程中包含的标签

父工程作用就是引入项目全部所需要的外部依赖(jar包等),并进行管理

packing标签

  • 父工程的 packaging 标签的文本内容必须设置为 pom。

在这里插入图片描述

properties标签


    <!--在 properties 标签中,可以自定义标签名称来管理依赖的版本号,被管理的依赖版本号由“${算定标签名称}”来代替。-->
    <properties>
        <!--自定义的标签名称:“项目名称”+version 英文单词构成-->
        <swagger.version>2.7.0</swagger.version>
    </properties>

dependencyManagement标签与dependencies标签

最高级父maven项目需要使用<dependencyManagement>实现对子项目依赖的继承管理。

 <dependencyManagement>
        <dependencies>
            <!--swagger-->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>${swagger.version}</version>
            </dependency>
            <!--swagger ui-->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>${swagger.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

若没有使用dependencyManagement标签管理依赖

子模块会无条件继承父工程的所有依赖,导致的问题是,本不需要的继承的依赖也会被继承,这就大大增加了项目模块最终打包的大小,也可能为上线埋下了隐患。
也就是说,父工程管理的是所有项目模块的依赖,而不是某一个项目模块的依赖,所以
某一个项目模块不需要继承父工程中的所有依赖,这就需要子项目模块向父工程声明需要的
依赖即可(声明式依赖)。而此时,父工程实际只需要通过使用dependencyManagement管理依赖的版本号即可。

子工程声明式继承父工程dependencyManagement管理的依赖

由于父工程管理依赖的版本号,那么子模块要想继承依赖,只能通过声明式来添加依赖,
实际上,子模块中的依赖是继承父工程依赖的版本号,可以不使用<version>标签;
如果子模块已定义依赖版本号<version>,那么 以子模块定义的版本号为准。

子工程声明式继承添加父级项目依赖
先声明继承的父工程

<parent>
        <artifactId>edu_parent</artifactId>
        <groupId>com.qlugcl</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

再声明子工程需要继承使用父工程的依赖和版本号,可以不声明<version>标签
从而得知若子工程没有使用version标签则父工程是使用的dependencyManagement标签管理的依赖

    <dependencies>
   <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
        </dependency>

总结

Maven管理多模块实现了各个工程模块之间的使用,提供了极大的方便,实现各个工程更加专业化的分工

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值