Maven创建父子工程详解

前言:
在微服务盛行的当下,我们创建的工程基本都是父子工程,我们通过父工程来引入jar,定义统一的版本号等,这样我们在子工程中就可以直接引用后使用了,而不需要去重复的声明版本号等,这样会更方便对整个项目的jar包实现统一化管理,让项目的层次更加清晰。通常我们在创建一个微服务架构时都是一个父工程,然后里面有api的子工程,common的公共组件子工程,pojo的实体类工程、service服务工程等等,他们各司其职共同构建出了一个完整的分布式服务,废话不多说,实际操作下这个父子工程到底该怎么创建。

一、创建父子工程

1.创建父工程

  • 第一步:file–>new–>project–>maven
    父工程仅仅是一个普通的maven工程就行,我们直接创建普通的maven工程,不引入任何jar包,这里直接下一步
    在这里插入图片描述
  • 第二步:输入groupid和artifactid,这里没什么讲究,起名看自己心情,然后继续下一步
    在这里插入图片描述
  • 第三步:到这里普通的maven工程就建好了,删除src(父工程用不到)注意iml文件不要删除
    在这里插入图片描述
  • 第四步:配置pom.xml
    我们使用properties来进行版本号的统一管理,使用dependencyManagement来管理依赖,声明父工程的打包方式为pom,具体操作如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.cheng</groupId>
        <artifactId>mybatis-father</artifactId>
        <packaging>pom</packaging>
        <version>1.0-SNAPSHOT</version>
    
        <properties>
            <mybatis-version>3.5.6</mybatis-version>
            <mysql-connector-version>5.1.38</mysql-connector-version>
            <junit-version>4.13</junit-version>
        </properties>
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis</artifactId>
                    <version>${mybatis-version}</version>
                </dependency>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>${mysql-connector-version}</version>
                </dependency>
                <dependency>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <version>${junit-version}</version>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
    </project>
    
    这里需要注意,父工程的依赖可以直接放在dependencies中,也可以在最外面包一层dependencyManagement,但是若是想要可以在子工程中依赖直接指向父工程,就需要使用dependencyManagement来管理依赖,不然子工程中的依赖的版本号还需要再次重复声明。此外父工程的打包方式应该是pom,不是jar,这里需要手动使用packaging来声明。

2.创建子工程

  • 1)第一步:创建module子工程
    这一步可以选择使用spring-initializr来创建子工程,也可以选择maven直接创建,选择spring-initializr我们可以选择需要的依赖,这样无需手动导入,选择maven创建我们之后还需要手动导入jar,这里是为了展示父子工程的依赖的关系,我们使用maven选项创建。如下图:
    在这里插入图片描述
  • 2)声明artifactid
    这里我们是不需要来声明groupid的,因为是子工程,所以这个值是固定的,我们可以自定义artifactid,如下图所示,这里完了之后就next-finsh就可以了。
    在这里插入图片描述
  • 3)展示子工程
    下面就是我们刚刚创建的子工程了。
    若是子工程不是通过这种方式建立的,想要完成父子工程的话,可以直接更改子工程中pom文件的parent块亦可。将parent指向我们想要的父级工程即可。
    在这里插入图片描述
  • 4)配置子工程的pom.xml
    首先我们需要为不同的子工程引入不同的jar包,当然这里只展示了一个子工程,我们在当前子工程中声明parent来指明他的父级工程,同时父工程中需要引入modules标签来声明他的子工程有哪些
    // 父工程也要声明,他的所有子工程
     <modules>
         <module>mybatis-son-one</module>
         <module>mybatis-son-two</module>
     </modules>
    
    下图可以看到我们在子工程中是不需要声明版本号的,为什么呢?可以看到引入依赖位置的左面有个紫色的向上箭头,点下就会发现跳到了父工程中,这就是为什么我们不需要声明版本号的原因,因为当前的jar包引用指向了父工程,他们共用版本号,当然共用版本号子工程该导入jar包还是需要导入jar包的。
    在这里插入图片描述

二、需要注意的点
到这里所有的操作就完了,其实发现创建一个父子工程还是很容易的,万事万物都是会了不难,难了不会的。不过这其中有几个点需要注意下,笔者列出来,我们共勉。

1.父工程的pom.xml文件的打包方式应该为pom
2.想要子工程的依赖指向父工程的话,父工程的依赖应该使用dependencyManagement来管理。
3.子工程若是旧工程的话,应该将子工程pom的parent指向想要的父工程
  • 25
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

归去来 兮

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

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

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

打赏作者

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

抵扣说明:

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

余额充值