Maven-多模块

  • Maven多模块项目,适用于一些比较大的项目,通过合理的模块拆分,实现代码的复用,便于维护和管理。尤其是一些开源框架,也是采用多模块的方式,提供插件集成,用户可以根据需要配置指定的模块。
  • 一般进行分层开发,最常见的就是分为domain(数据模型层)、dao(数据库访问层)、service(业务逻辑层)、web(表现层),这样分层之后,各个层之间的职责会比较明确,后期维护起来也相对比较容易。

继承

  • 如果项目划分了多个模块,都需要依赖相似的jar包,只需要创建一个父模块,在它的pom.xml文件中配置依赖的jar包,功能模块只需要继承父模块,就可以自动得到其依赖jar包,而不需要在每个模块中都重复配置。
  • 设计如下
    ?-parent 父级工程-pom类型—负责管理jar包
    ?-common(util) jar类型—共用的一些工具类
    ?-domain jar类型—负责实体类,vo类
    ?-service jar类型—负责业务的相关处理
    ?-dao jar类型—负责数据库连接
    ?-web war类型 —负责控制层

聚合

  • 一些开源项目,都会把自己的源代码公开到github之类的网站上,我们通过下载其代码,在本地执行maven install,可以把代码编译成jar包安装到本地仓库。而一个项目通常有多个模块,比如spring web;spring jdbc等20多个模块,如果一个一个的执行maven install,太过繁琐,而且这些模块都是彼此依赖的,必须搞清楚依赖关系按顺序执行,才不会报错。而聚合项目就是通过一次maven install,自动完成上面的整个过程
  • 设计如下
    • ?-spirng-parent 父级工程 pom类型
      • ?-spring-web pom类型
        ?-web-controller war类型
        ?-web-service jar类型
        ?-web-dao jar类型
        ?-web-domain jar类型
      • ?-spring-jdbc pom类型
        ?-jdbc-controller war类型
        ?-jdbc-service jar类型
        ?-jdbc-dao jar类型
        ?-jdbc-domain jar类型
      • ?-spring-mvc pom类型
        ?-mvc-controller war类型
        ?-mvc-service jar类型
        ?-mvc-dao jar类型
        ?-mvc-domain jar类型

聚合与继承的关系

区别:

  1. 对于聚合模块来说,它知道有哪些被聚合的模块,但那些被聚合的模块不知道这个聚合模块的存在。
  2. 对于继承关系的父pom来说,它不知道有哪些子模块继承与它,但那些子模块都必须知道自己的父pom是什么

共同点:

  1. 聚合pom与继承关系中的父pom的packaging都是pom
  2. 聚合模块与继承关系中的父模块除了pom之外都没有实际的内容。

在这里插入图片描述

创建一个继承的方式:Maven多模块

  • 创建一个空项目
    在这里插入图片描述
    在这里插入图片描述

  • 添加父级模块(负责管理jar包)
    在这里插入图片描述
    在这里插入图片描述

  • 设置pom类型
    在这里插入图片描述

  • 添加实体类子模块
    在这里插入图片描述

  • 添加控制层子模块
    在这里插入图片描述

  • 设置为war类型
    在这里插入图片描述

  • 添加业务逻辑子模块
    在这里插入图片描述

  • 添加dao子模块
    在这里插入图片描述

  • 添加工具类子模块
    在这里插入图片描述

  • 除了控制层模块,父级模块,设置为jar类型
    在这里插入图片描述

  1. controller指向service
    在这里插入图片描述
  2. service指向mapper
    在这里插入图片描述
  3. mapper指向domain
    在这里插入图片描述
  4. domain指向common
    在这里插入图片描述
  • 一个简单的继承方式的maven多模块就完成了。

创建一个聚合方式:Maven多模块

  • 在父级模块中有很多其他父模块,创建一个car项目,并设置为pom类型
    在这里插入图片描述
  • 添加子模块
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 这只添加了一个子模块。
  • 在父级模块pom.xml中生成相关子模块
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44100514/article/details/87438857
今日推荐