day06---14-后端Web进阶(Maven高级)

22 阅读2分钟

14-后端Web进阶(Maven高级)

1)分模块设计与开发

  • 是什么:把一个大项目按功能/结构拆成多个 Maven 模块(子工程)。

  • 为什么:便于多人协作、维护扩展、通用代码复用、模块间依赖调用清晰。

  • 怎么拆:常见策略

    1. 按功能(商品/订单/公共组件)
    2. 按层(pojo/controller/service/dao)
    3. 功能+层组合
  • 案例思路:抽出 tlias-pojo(实体类)和 tlias-utils(工具类),业务放 tlias-web-management,业务模块依赖 pojo/utils。


2)继承与聚合

2.1 继承(Parent)

  • 作用:简化重复依赖配置、统一管理依赖版本和构建属性。
  • 实现:子模块 pom 里写 <parent>...</parent>
  • SpringBoot项目多重继承:子模块继承 tlias-parenttlias-parent 再继承 spring-boot-starter-parent(解决“只能继承一个父”的问题)。
  • 父工程 packagingpom(不写业务代码,做管理)。

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个命令

    1. settings.xml 配账号密码(servers)
    2. settings.xml 配私服镜像地址(mirrors)
    3. 项目 pom 配发布地址(distributionManagement:releases/snapshots)
    4. 执行 mvn deploy 发布到私服
  • 仓库区分

    • SNAPSHOT(开发中)→ snapshots 仓库
    • RELEASE(稳定发布)→ releases 仓库