笔者开发的某后台管理系统的项目依赖管理工具使用的是Maven,软件主体框架采用SpringBoot,业务逻辑开发采用MVC设计模式。
发现的问题:
在后期的开发过程中,system子模块会被很多子模块依赖,如业务A、B子模块需要依赖system子模块中的用户、字典等信息。
原来的软件结构是把在system子模块当做主模块,开发的业务A、B子模块引入到system子模块的依赖中进行启动。因此公共信息是在业务A、B子模块中访问不到。
访问不到需要的类,就把它引入进来撒,引入不来,也要想办法引入进来。
——第一原则
经过调整后,业务A、B子模块都依赖于system子模块。
基于el-admin我们来分析一下system子模块依赖,

业务A子模块的依赖为,

system子模块POM文件删除原来对业务A的依赖即可。
业务A子模块POM文件
业务A子模块将system子模块中的resource文件夹内的文件悉数剪切到业务A子模块。
业务A子模块调整起来,方便又快捷,源于Spring框架的强大配置特征,在子模块包名的命名上也要尽量保持一致,这样配置类的参数更改不需要太多就可以完成软件结构的优化和调整。
业务A和业务B子模块都依赖system子模块,而system子模块太重了,后期对system子模块进行拆分,使业务A和业务B子模块依赖变得轻量化。

依赖管理是Maven工具的强大之处。要懂得依赖范围、传递性、路径选择。
使用IDEA的Maven Helper插件来查看冲突的依赖包,对冲突的依赖包进行排除。

该插件能干点啥呢?