一、背景
笔者开发的某后台管理系统的项目依赖管理工具使用的是Maven,软件主体框架采用SpringBoot,业务逻辑开发采用MVC设计模式。
发现的问题:
在后期的开发过程中,system子模块会被很多子模块依赖,如业务A、B子模块需要依赖system子模块中的用户、字典等信息。
原来的软件结构是把在system子模块当做主模块,开发的业务A、B子模块引入到system子模块的依赖中进行启动。因此公共信息是在业务A、B子模块中访问不到。
二、思路
访问不到需要的类,就把它引入进来撒,引入不来,也要想办法引入进来。
——第一原则
经过调整后,业务A、B子模块都依赖于system子模块。
基于el-admin我们来分析一下system子模块依赖,
业务A子模块的依赖为,
三、调整步骤
3.1 调整system子模块POM文件
删除原来对业务A的依赖即可。
3.2 调整业务A子模块POM文件
3.3 资源文件剪切到业务A子模块
将system子模块中的resource文件夹内的文件悉数剪切到业务A子模块。
3.4 启动类放到业务A子模块
3.5 总结
调整起来,方便又快捷,源于Spring框架的强大配置特征,在子模块包名的命名上也要尽量保持一致,这样配置类的参数更改不需要太多就可以完成软件结构的优化和调整。
四、优化方向
业务A和业务B子模块都依赖system子模块,而system子模块太重了,后期对system子模块进行拆分,使业务A和业务B子模块依赖变得轻量化。
五、重新审视Maven
5.1 能做什么
项目构建
依赖管理
项目信息管理
5.2 依赖管理
依赖管理是Maven
工具的强大之处。要懂得依赖范围、传递性、路径选择。
5.3 排除依赖
使用IDEA的Maven Helper
插件来查看冲突的依赖包,对冲突的依赖包进行排除。
该插件能干点啥呢?
- 分析和排除冲突依赖项
- 运行/调试当前文件或根模块的Maven模块
- 在当前 Maven 模块路径打开终端的操作
- 运行/调试当前测试文件的操作