本文将为大家详细介绍如何划分工程内的Maven模块,开发纵享丝滑。
一、为什么我们要划分Maven模块
我们通过Idea的Springboot脚手架新建一个Springboot工程的时候,项目默认的初始化结构就是单模块结构。
我们使用单模块进行MVC的规范进行开发的时候非常的简单粗暴,在单模块下面建立Service包、Mapper包、Contoller包就可以开始开发了。
Demo、小型工具类型、小型线上旁系业务支撑性等独立性强的应用使用单模块的项目结构就是短平快
。
项目结构简单,开发方便。
但是一旦你的应用业务逻辑复杂起来,我们需要将一个应用拆成两个或者多个应用。在部署的时候也多个应用部署。将原先的一把梭哈结构,变成多点开花。
这个时候我们就需要将原有的单模块结构进行拆分,我看过有的简单粗暴的拆分,多个业务应用还是在一个工程下面,将各个应用的通用逻辑独立一个上层Maven公共包。
这种方式的话在打包部署上将原先的project从一个包变成了两个包,但是在写代码的时候本质上还是在大的父级project下的。
随着业务越来越复杂,服务需要不断的增多,我们不可能让父级project下的子project无限的增加。我们需要将各个子project都独立出来。