用Idea实现Maven的继承和聚合

        目前微服务特别的火,也是一种趋势,好多大的系统都会切分成比较独立的微服务,特别是在一个大的项目组中,会将一个生态下的各种小的微服务用maven工程统一管理到一个大的项目中,而各个小的微服务以模块的形式存在(这只是在代码版本管理方面,微服务在运行部署方面仍然是独立的),如果是Dubbo项目更为常见,比如几个微服务使用的Api就可以成为一个公共的模块,供provider和consumer依赖,或者是一些公共的工具类或者基础类都可以抽成一个独立的模块。

一.几个标签

    1. <parent>标签:子模块用来继承父木块。

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
</parent>

    2. <dependencyManagement>标签:用来管理一些异类,比如父模块可以将一些公用的maven依赖抽到一个pom文件里面管理,比如各个依赖的版本号,在以后的版本升级中就不需要一个一个的去改每一个子模块,只需要修改父模块的pom文件就可以了。

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.1.0</version>
        </dependency>

        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>

</dependencies>

   3. <modules>标签:父模块用来管理子模块,从而可以通过打包父模块而一件将下面的子模块一起打包。

<modules>
	<module>service-1</module>
	<module>service-2</module>
	<module>service-3</module>
	<module>service-4</module>
</modules>

二,实战

1.新建一个maven项目,不用勾选模板。

next写入项目名称,组织什么的就可以生成一个简单的maven框架了

 如果父模块只是用来管理pom文件,版本号等,就可以删除src,但是父类要实现一些子模块需要的公共类则可以留着。

2.在父模块的基础上新建子模块,New->Module

之后的操作和父模块一样。

3.新建三个子模块,风别是serviceA,serviceB,serviceC。

 父模块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.orient.maven</groupId>
    <artifactId>mavenmultiplemodules</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>serviceA</module>
        <module>serviceB</module>
        <module>serviceC</module>
    </modules>


</project>

子模块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">
    <parent>
        <artifactId>mavenmultiplemodules</artifactId>
        <groupId>com.orient.maven</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>serviceA</artifactId>


</project>

构建成功后,可以从右边的maven project 看到maven的模块关系,

3.一键打包三个工程(serviceA,serviceB,serviceC)

打包时只需要点击root下,也就是父模块下的package就行,打包完成后就会发现在三个子模块下均会产生target文件夹。

 到此,工程就基本完成了!

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值