在 Nexus 仓库管理器中,maven-central
、maven-public
、maven-releases
和 maven-snapshots
是常用的 Maven 仓库类型。每个仓库都有其特定的用途和功能。以下是对这些仓库的详细介绍:
1. maven-central
- 类型:代理仓库(Proxy Repository)
- 用途:代理 Maven Central 仓库,这是一个全球性的公共仓库,包含了大量的开源库和框架。
- 特点:
- 远程索引:Nexus 会定期从 Maven Central 仓库同步元数据和索引,以便快速查找和下载依赖。
- 缓存:Nexus 会缓存从 Maven Central 下载的包,减少对外部网络的依赖,提高构建速度。
- 只读:不能向
maven-central
仓库上传包,只能从中下载。
2. maven-public
- 类型:组仓库(Group Repository)
- 用途:聚合多个实际的 Maven 仓库,提供一个统一的访问点。
- 特点:
- 聚合:
maven-public
通常会包含maven-central
、maven-releases
和maven-snapshots
等仓库,形成一个虚拟的仓库组。 - 单一入口:开发人员和构建工具只需要配置一个
maven-public
仓库的 URL,即可访问所有的 Maven 包。 - 灵活配置:可以根据需要添加或移除组中的仓库。
- 聚合:
3. maven-releases
- 类型:宿主仓库(Hosted Repository)
- 用途:用于存储正式发布的版本(release)包。
- 特点:
- 发布版本:存储经过测试和验证的稳定版本。
- 不可变:一旦发布,包的内容不能更改。
- 部署:开发人员和持续集成系统可以将发布版本的包部署到
maven-releases
仓库。
4. maven-snapshots
- 类型:宿主仓库(Hosted Repository)
- 用途:用于存储开发中的快照(snapshot)版本包。
- 特点:
- 快照版本:存储开发过程中的中间版本,这些版本可能包含未完成的功能或修复。
- 可变:快照版本的包内容可以随时更新。
- 自动更新:Maven 会自动检查并下载最新的快照版本,确保开发环境始终使用最新的代码。
- 部署:开发人员和持续集成系统可以将快照版本的包部署到
maven-snapshots
仓库。
示例配置
假设你已经安装并配置了 Nexus 仓库管理器,以下是如何创建和配置这些仓库的示例步骤:
1. 创建 maven-central
代理仓库
- 登录 Nexus 管理界面。
- 导航到 Repositories 页面。
- 点击 Create repository 按钮。
- 选择 proxy 类型。
- 在 Format 下拉菜单中选择 maven2。
- 填写仓库名称,例如
maven-central
。 - 在 Remote storage location 中填写 Maven Central 的 URL,例如
https://repo1.maven.org/maven2/
。 - 点击 Create repository 完成创建。
2. 创建 maven-releases
宿主仓库
- 登录 Nexus 管理界面。
- 导航到 Repositories 页面。
- 点击 Create repository 按钮。
- 选择 hosted 类型。
- 在 Format 下拉菜单中选择 maven2。
- 填写仓库名称,例如
maven-releases
。 - 点击 Create repository 完成创建。
3. 创建 maven-snapshots
宿主仓库
- 登录 Nexus 管理界面。
- 导航到 Repositories 页面。
- 点击 Create repository 按钮。
- 选择 hosted 类型。
- 在 Format 下拉菜单中选择 maven2。
- 填写仓库名称,例如
maven-snapshots
。 - 勾选 Allow redeploy 选项,允许重新部署快照版本。
- 点击 Create repository 完成创建。
4. 创建 maven-public
组仓库
- 登录 Nexus 管理界面。
- 导航到 Repositories 页面。
- 点击 Create repository 按钮。
- 选择 group 类型。
- 在 Format 下拉菜单中选择 maven2。
- 填写仓库名称,例如
maven-public
。 - 在 Group 部分,选择要包含在组中的仓库,例如
maven-central
、maven-releases
和maven-snapshots
。 - 点击 Create repository 完成创建。
总结
maven-central
:代理 Maven Central 仓库,用于下载公共的开源库。maven-public
:组仓库,聚合多个实际的仓库,提供一个统一的访问点。maven-releases
:宿主仓库,用于存储正式发布的版本包。maven-snapshots
:宿主仓库,用于存储开发中的快照版本包,不是发布版本