14-后端Web进阶(Maven高级)
1)分模块设计与开发
-
是什么:把一个大项目按功能/结构拆成多个 Maven 模块(子工程)。
-
为什么:便于多人协作、维护扩展、通用代码复用、模块间依赖调用清晰。
-
怎么拆:常见策略
- 按功能(商品/订单/公共组件)
- 按层(pojo/controller/service/dao)
- 功能+层组合
-
案例思路:抽出
tlias-pojo(实体类)和tlias-utils(工具类),业务放tlias-web-management,业务模块依赖 pojo/utils。
2)继承与聚合
2.1 继承(Parent)
- 作用:简化重复依赖配置、统一管理依赖版本和构建属性。
- 实现:子模块 pom 里写
<parent>...</parent>。 - SpringBoot项目多重继承:子模块继承
tlias-parent,tlias-parent再继承spring-boot-starter-parent(解决“只能继承一个父”的问题)。 - 父工程 packaging:
pom(不写业务代码,做管理)。
2.2 版本锁定(dependencyManagement)
-
目的:统一依赖版本,避免多个模块手动改 version、易遗漏。
-
核心区别(必背) :
<dependencies>:直接引入依赖(会被子工程继承)<dependencyManagement>:只管理版本,不引入依赖(子工程要用仍需写依赖,但可不写 version)
-
可用
<properties>集中管理版本号(${xxx.version})。
2.3 聚合(modules)
-
作用:多模块项目“一键构建”(clean/package/install/deploy),无需按依赖顺序逐个执行。
-
实现:聚合工程(通常也是父工程)pom 里配置:
<modules>...</modules>
2.4 继承 vs 聚合(一句话)
- 继承:统一配置/依赖管理(子知道父)
- 聚合:统一构建执行(父知道子)
3)私服(Nexus等)
-
是什么:公司内网的远程仓库,代理中央仓库,解决团队内部 jar 共享。
-
依赖查找顺序:本地仓库 → 私服 → 中央仓库。
-
上传/下载关键点:3处配置 + 1个命令
settings.xml配账号密码(servers)settings.xml配私服镜像地址(mirrors)- 项目 pom 配发布地址(distributionManagement:releases/snapshots)
- 执行
mvn deploy发布到私服
-
仓库区分:
- SNAPSHOT(开发中)→ snapshots 仓库
- RELEASE(稳定发布)→ releases 仓库