当前位置: 首页 > news >正文

JavaWeb——maven高级(5/5)-私服(私服的概念与作用、Maven 依赖的查找顺序、上传资源到私服的配置步骤、下载依赖配置条件)

目录

Maven 高级 - 私服

1. 私服的概念与作用

1.1 什么是私服

1.2 私服的使用目的

2. Maven 依赖的查找顺序

2.1 查找依赖的流程

3. 私服中的仓库类型与版本关系

3.1 仓库类型分类

3.2 与版本号的关系

4. 上传资源到私服的配置步骤

4.1 配置用户名和密码

4.2 配置上传目标仓库地址

4.3 配置私服连接地址(镜像)

5. 下载依赖的完整流程

5.1 下载流程说明

5.2 下载配置条件

6. 私服的测试与使用环境

6.1 企业级使用方式

6.2 本地模拟方式

6.3 修改配置以连接本地私服

7. 总结

7.1 私服的功能作用

7.2 私服的使用步骤

8. 附:快照依赖启用配置

8.1 snapshot 依赖无法使用的原因

8.2 在 profiles 中启用 snapshot 支持


Maven 高级 - 私服

1. 私服的概念与作用

1.1 什么是私服

        私服是一个部署在公司局域网内的 Maven 仓库服务,本质上属于远程仓库。它既可以代理 Maven 中央仓库(用于下载依赖),也可以供开发者上传模块资源,实现项目间依赖共享。企业中通常搭建一台私服供整个公司使用,开发者只需配置一次即可使用。

1.2 私服的使用目的

        在企业开发中,不同小组或项目组可能会共享某些模块(如工具类、通用组件等)。将这些模块上传至私服后,其他项目即可通过 Maven 坐标进行依赖,而无需重复开发。这样既提高了效率,也便于统一版本和维护。


2. Maven 依赖的查找顺序

2.1 查找依赖的流程

当 Maven 编译项目时,会根据以下顺序依次查找依赖:

  1. 本地仓库:优先查找本地仓库是否已缓存目标依赖。

  2. 私服仓库:本地未命中时,Maven 会连接私服查找依赖。

  3. 中央仓库:私服中也没有该依赖时,Maven 最终会请求中央仓库下载,并同步到本地和私服中。

该顺序体现了 Maven 的缓存优先策略,避免重复下载。


3. 私服中的仓库类型与版本关系

3.1 仓库类型分类

在私服服务中,通常包含以下几类仓库:

  • release:用于存放正式版本的依赖或模块(不包含 snapshot 字样)能趋于稳定、当前更新停止。

  • snapshot:用于存放开发过程中的快照版本(版本号中含 snapshot),即功能不稳定、尚处于开发中。

  • central:代理 Maven 官方中央仓库,起中转下载作用。

  • group:聚合多个仓库为一体,便于统一配置下载地址。

3.2 与版本号的关系

当我们执行 deploy 上传模块时,Maven 会根据模块版本号是否包含 snapshot 自动判断上传目标:

  • 包含 snapshot,上传至 snapshot 仓库

  • 否则,上传至 release 仓库


4. 上传资源到私服的配置步骤

4.1 配置用户名和密码

Maven settings.xml 文件中,使用 <servers> 标签配置上传私服所需的账号信息。例如:

<server><id>nexus-release</id><username>admin</username><password>admin123</password>
</server>

该 ID 需要与 pom 文件中的仓库 ID 保持一致。

4.2 配置上传目标仓库地址

在需要上传的模块的 pom.xml 中,使用 <distributionManagement> 标签指定上传仓库的地址:

<distributionManagement><repository><id>maven-release</id><url>http://192.168.150.101:8081/repository/maven-releases/</url></repository><snapshotRepository><id>maven-snapshot</id><url>http://192.168.150.101:8081/repository/maven-snapshots/</url></snapshotRepository>
</distributionManagement>

此配置分别定义了正式版与快照版的上传地址。

4.3 配置私服连接地址(镜像)

settings.xml<mirrors> 标签下添加镜像配置,用于下载依赖时优先连接私服:

<mirror><id>maven-public</id><mirrorOf>*</mirrorOf><url>http://192.168.150.101:8081/repository/maven-public/</url>
</mirror>

如之前配置了阿里云镜像,应将其注释或删除,以避免冲突。


5. 下载依赖的完整流程

5.1 下载流程说明

        当我们在 pom.xml 中声明一个依赖时,Maven 会依次按照“本地仓库 → 私服 → 中央仓库”的顺序进行查找和下载。如果下载自中央仓库,会自动将资源同步到本地仓库与私服仓库中。

5.2 下载配置条件

        确保在 settings.xml 中配置了 <mirrors>,私服地址通常由开发组长或项目负责人提供,保证配置正确后,所有开发者即可共享同一私服进行依赖管理。


6. 私服的测试与使用环境

6.1 企业级使用方式

        真实企业中,私服通常部署在公司内部服务器,如 192.168.150.101,并通过浏览器提供 Web 管理界面查看、管理上传的依赖资源。

6.2 本地模拟方式

        为方便学习,此处用了私服的本地版本(压缩包形式)。下载解压后,执行其中的 start.bat 脚本即可一键启动私服服务。

6.3 修改配置以连接本地私服

将原来配置中的地址修改为 localhost,如:

http://localhost:8081/repository/maven-public/

以完成本地私服的模拟环境连接测试。


7. 总结

7.1 私服的功能作用

        私服是 Maven 的远程仓库之一,部署在局域网中,为开发团队提供依赖上传与下载服务,解决多项目依赖共享问题。

7.2 私服的使用步骤

        配置包括:上传时配置 <servers><distributionManagement>,下载时配置 <mirrors>。通过 mvn deploy 命令将模块上传后,其他模块便可通过坐标进行依赖。

8. 附:快照依赖启用配置

8.1 snapshot 依赖无法使用的原因

        有时我们在项目中使用 xxx-SNAPSHOT 版本依赖,即使仓库中已上传成功,但 Maven 却无法下载。这是因为所配置的仓库地址默认可能未启用对 snapshot 的支持

8.2 在 profiles 中启用 snapshot 支持

可以通过 settings.xml 文件中的 <profiles> 标签添加如下配置,显式启用快照依赖的下载权限:

<profile><id>allow-snapshots</id><activation><activeByDefault>true</activeByDefault></activation><repositories><repository><id>maven-public</id><url>http://192.168.150.101:8081/repository/maven-public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories>
</profile>

这样配置后,即使使用 SNAPSHOT 版本,也能正常从私服拉取依赖。


END


学习自:黑马程序员——JavaWeb课程

http://www.dtcms.com/a/324354.html

相关文章:

  • 单链表专题---暴力算法美学(2)(有视频演示)
  • actuary notes[2]
  • 单调栈——数位删减
  • Go语言中切片(Slice)的拷贝
  • 自创论述类文本阅读:论温泉
  • PWM波的频谱分析及matlab 验证[电路原理]
  • 【Linux】使用静态 BusyBox 解决操作系统“塌方”问题
  • Premiere准备工作
  • AQS的详细讲解
  • Java对接支付宝,回调验签失败
  • 活动策划(展会、年会),在线工具能快速出邀请函不?
  • [创业之路-537]:经营分析会 - 销售目标以及支撑、关键策略、主要行动措施、资源保障、人才储备
  • 在 JDK 17 上完整观察 synchronized 锁升级过
  • 嵌入式第二十四课!!linux应用软件编程与文件操作!!!
  • Java 基础编程案例:斐波拉契数与从输入交互到逻辑处理
  • NodeJs学习日志(4):路由合并_环境配置_常用文件目录
  • HarmonyOS之module.json5功能详解
  • AI测试助手如何让Bug无处可藏
  • 湖南(源点咨询)市场调研 如何在行业研究中快速有效介入 中篇
  • 深入浅出DBSCAN:基于密度的聚类算法详解与Python实战
  • github上传文件
  • Navicat 无限适用
  • Tesseract训练个人字库操提高准确率操作全流程(详细)
  • 新手向:Python制作简易音乐播放器
  • Python中的 __name__
  • 遇到前端导出 Excel 文件出现乱码或文件损坏的问题
  • 异或循环冗余
  • Python设计模式 - 装饰模式
  • 新手向:Python实现文件加密解密工具
  • 旅行者1号无线电工作频段