maven的继承和聚合

本人之前也用过maven的开发环境来开发项目,但是没有采用分布式开发,都是单独的一个项目做的开发。公司要走移动端开发,需要重新搭建一个移动端后台的框架,正好利用这个机会用maven做了一次分布式开发项目的模式,这种开发模式本人觉得最大的好处是功能细分,代码可以重复使用,维护项目特方便,发布项目也方便,充分解耦
1.首先说明本人用的是apache-maven-3.3.3
2.假设有A、B、C、三个功能模块的项目,比如都需要用到mybatis.jar,一般我们都会在每一个pom.xml会这样写

     <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.2.8</version>
     </dependency>

但是有一天假设mybatis.jar 3.2.8这个版本不够稳定,需要升级或者降低版本,那么我们肯定会修改3个pom.xml文件,这样显得有点操作繁琐,维护起来不是很方便。那我们就可以利用maven的一个特性”继承”,在java中继承是用extends关键字,maven使用的配置,所以我们可以单独建一个parent maven项目,然后在parent项目中的pom.xml加入以下配置

这里写图片描述

依赖文件管理表示以下配置依赖jar文件版本统一由此项目管理,倘若其它项目继承了此项目,若其它项目在配置maven依赖jar并还配置了节点,maven就会给出警告,此时A B C 项目就可以继承parent项目,只需在A B C各项目的pom.xml加入以下配置即可

<parent>
        <groupId>kd_ws</groupId>
        <artifactId>kd_ws_parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
</parent>

配置了之后,由于 下面配置的jar文件并不会共享给子项目,所以A B C 的pom.xml 还是需要配置mybatis.jar的maven依赖,只是要去掉节点,变成了下面这样

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
</dependency>

这样maven的继承就ok了,以后要升高或者降低mybatis.jar的版本,只需要更改parent项目中pom.xml文件的依赖文件版本即可

3.我们知道有A B C 三个项目假设发布的时候我们肯定需要编译A B C 三个项目 分别打成不同jar文件,但是我们同样的操作我们要操作三次,这个时候操作也是繁琐的,我的想法是我能不能只要操作一次,maven能够把我所有的maven分支项目都能够编译一次呢?maven还是很强大的,答案是肯定的,那就是maven的聚合特性,我们只需在parent项目中的pom.xml文件中加入以下配置

<!--聚合 -->
    <modules>
        <module>../A</module>(本人用的是eclipse开发工具,项目在同一目录,位置随机应变)
        <module>../B</module>
        <module>../C</module>
    </modules>

配置完毕之后,假设我们要同时编译A B C 项目,我们直接只需编译parent项目即可,maven会根据依赖关系自动编译指定的聚合项目
这里需要注意的是,若在parent项目pom.xml 节点下配置新的依赖jar文件,A项目也配置了同样新的依赖jar文件,这个时候应该去掉A项目也配置了同样新的依赖jar文件,先编译parent项目不然会报错,或者先在parent项目pom.xml的节点下去掉../A,先编译parent项目,再加入../A

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值