笔者在网上看到了太多使用maven进行多模块构建的文档,主要是对项目进行横向切割为不同的模块,每个模块为一个单一maven module project,现以一个项目举例,来说明其大致步骤;然后,通过对该项目进行纵向切割,说明其配置方式,并比较两者之间异同点。
1.项目需求
某公司现在开发一个幼儿园管理系统(项目名称:wo-baby)整个系统的子系统包结构大致如下:
com.qfedu.wo.common
:该包提供整个项目的公共工具类等通用功能
com.qfedu.wo.sys
:系统管理子系统完成整个系统权限管理,包括如下子包
com.qfedu.wo.sys.controller
com.qfedu.wo.sys.service
com.qfedu.wo.sys.dao
com.qfedu.wo.sys.entity
com.qfedu.wo.baby
:幼儿园管理子系统,完成整个幼儿园管理功能,包括如下子包
com.qfedu.wo.baby.controller
com.qfedu.wo.baby.service
com.qfedu.wo.baby.dao
com.qfedu.wo.baby.entity
2.项目横向切割,分模块构建
横向切割就是按照项目的分层开发模型,对整个项目进行分模块构建,划分模块如下:
整个项目划分为5个子模块,如上图所示,各子模块对应的包如下:
wo-common:com.qfedu.wo.common
wo-web:com.qfedu.wo.sys.controller/com.qfedu.wo.baby.controller