快捷搜索: 王者荣耀 脱发

菜鸟的maven多模块开发学习总结

说明

更新时间:2020/9/9 17:03,更新到了统一依赖模块管理

本文主要对maven管理里面的多模块开发进行学习与记录,本文会持续更新,不断地扩充

本文仅为记录学习轨迹,如有侵权,联系删除

一、新建父工程

创建springboot项目 下一步将type换成pom 其余的就跟正常创建springboot项目一样了,最后创建好的项目是没有src目录的,而且maven父工程必须遵守以下两点要求:

  1. packaging必须是pom
  2. src目录必须删除

二、创建子工程

主要创建common、dao、server、web(controller)4个子模块

maven模块的创建

common、dao、server这些是maven模块,当然web模块是springboot项目模块,也可以属于maven,这里就细分一下,web分到springboot模块 common、dao、server模块也是这样子创建,创建完后,父工程的pom下会有对应的module 然后查看这三个模块的依赖,会发现里面的有一个parent标签,存放的就是关联的父模块信息

springboot模块的创建

注意web子模块是springboot项目,创建模块的时候,也正常创建模块即可 修改完的pom文件

然后在父模块的pom中添加模块 这样子工程(子模块)也创建完成

三、模块间的依赖关系

首先是common模块,这个模块放的是一些通用的公共模块,这个模块不需要依赖其他的模块,所以可以不需要添加任何依赖。 然后是dao模块,这个模块主要是负责跟数据库打交道的,用于查询数据库,它需要common模块的依赖,所以需要在dao这个模块中填加上common的依赖 然后是server模块,这个模块主要负责处理相关的业务逻辑,它需要common模块的依赖和dao模块的依赖,所以需要添加这两个模块的依赖 最后是web模块,或者叫controller模块吧,用于存放一些接口,它需要的模块是common和server模块,所以需要将这两个依赖引入

四、统一依赖管理

这样其实已经创建好多模块了,但会有一个问题,因为所有的子模块都是父模块的,所以,父模块pom里面有的坐标依赖,在每一个子模块都会被引入 但实际开发中,子模块可能只是需要父模块里面的某一个依赖而且,而不是全部依赖,这时有几种方法,可以自己在子模块的pom中自己独自引入依赖即可,这样的话可以版本管理会很乱,于是就有下面的父模块依赖管理

首先在父模块中添加依赖管理器标签dependencyManagement,里面添加依赖,此时子模块不会引入里面的依赖,后面子模块需要用到哪个模块,再按需引入即可,例如在dependencyManagement里面填了一个hutool的坐标依赖,此时,common里面需要用到hutool就可以按需引入即可 假设common模块需要用到hutool这个坐标依赖,就可以在common引入这个依赖即可,并且版本跟父模块一致 这样就是实现了依赖的模块管理。

经验分享 程序员 微信小程序 职场和发展