Maven - 父工程的使用与聚合

① 新建一个Maven工程,打包为pom方式,创建Maven父工程;

这里写图片描述


② 在子工程pom.xml文件中添加父工程的引用;

<!-- 子工程中声明父工程 -->
    <parent>
        <groupId>com.web.maven</groupId>
        <artifactId>Parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <!-- 以当前文件为基准的父工程的pom.xml文件的相对路径 -->
        <relativePath>../Parent/pom.xml</relativePath>
    </parent>

③ 将子工程中与父工程重复的坐标删除

<modelVersion>4.0.0</modelVersion>
    <!--公司或组织域名倒序+项目名-->
<!--    <groupId>com.atguigu.maven</groupId> -->
    <!-- 项目名不是类名-->
    <artifactId>Hello</artifactId>
    <!-- 版本号 -->
<!--    <version>0.0.1-SNAPSHOT</version> -->

只留下artifactId !!!

④ 利用父工程统一管理版本号

若是团队开发,极容易出现版本号冲突现象。可以利用父工程声明版本号,子工程继承。

父工程 pom.xml:

        <dependency> 
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.3.4.RELEASE</version> 
            <scope>compile</scope>
        </dependency>       

子工程,不需要version标签:

        <dependency> 
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
<!--            <version>4.3.4.RELEASE</version> -->
            <scope>compile</scope>
        </dependency>       

看到这里,有人可能会想。那么我在父工程中依赖了spring-core。4.3.4.RELEASE.jar,子工程是否不需要显示依赖,就可以继承使用呢?

No!!!No!!!

如下图,子工程中注释掉该jar的依赖:

这里写图片描述

Maven Dependencies 中无Spring jar包的依赖!


打开注释:

这里写图片描述

可以看到有了Spring jar,其中注释并没有打开version 与 scope。version继承了父工程的,scope默认是compile!

即,子工程的pom.xml可以如下所示:

 <!-- mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
    </dependency>

只显示groupId和artifactId,默认scope为compile!!!


⑤ 利用properties标签升级版本号

如果要想版本升级呢?项目中几个框架的jar可是有几十个!即使引用父工程版本号,那么父工程也要手动改几十个!!!

下面使用properties标签:

  • 在properties标签内使用自定义标签统一声明版本号
 <properties>
    <spring.version>4.3.4.RELEASE</spring.version>
  </properties>
  • 在需要统一版本的位置,使用${自定义标签名}引用声明的版本号
        dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
<!--            <version>4.3.4.RELEASE</version> -->
            <scope>compile</scope>
        </dependency>

Tips:凡是需要统一声明后再引用的场合都可以使用这种方法!!

这样升级版本,只需要改properties标签内的值就可以!


注意:

配置继承后,执行安装命令时要先安装父工程!!!!!!
配置继承后,执行安装命令时要先安装父工程!!!!!!
配置继承后,执行安装命令时要先安装父工程!!!!!!


⑥ 聚合

作用:一键安装各个模块工程。

  <!-- 配置聚合,点击run as - maven install -->
  <modules>
     <!--相对路径-->
    <module>../Hello</module>
    <module>../HelloFriend</module>
    <module>../MakeFriends</module>
  </modules>

在父工程的pom.xml文件中右键 run as - maven install 可批量安装工程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流烟默

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值