前言
在DevOps流水线中构建、测试、部署、监控的整个过程需要依赖于不同版本的构建产物和依赖包,制品库在整个DevOps流水线中扮演着承上启下的角色。
Nexus和Artifactory都用于存储和管理JAR 文件、Docker 镜像、npm 包等构建产物;
这些工具作为1个集中式仓库,帮助团队更高效地处理构建、依赖管理和部署,提高开发流程的稳定性和速度。
具体功能如下
-
制品存储和版本控制: 制品库存储所有构建的二进制文件、容器镜像、库文件等,并为每个文件分配唯一的版本号。这使得每次部署都能够明确追踪到某个具体版本的制品。
-
制品版本一致性: 通过Nexus等工具,所有环境(如测试、预生产、生产)都可以引用相同版本的制品。这避免了由于不同环境使用不同版本导致的部署不一致问题。
-
部署环境透明度: 因为制品库记录了每个制品的版本、依赖关系和使用情况,所以能够清晰地知道在任何时刻,生产环境中部署了哪些组件,是否符合预期,确保生产环境的稳定性和可靠性。
-
提高软件版本回滚能力: 如果生产环境出现问题,开发团队可以很容易地回溯到之前稳定的版本,并重新部署。这减少了系统故障恢复的时间。
总结来说,制品库在CI/CD管道中扮演了至关重要的角色,它不仅支撑了CI的构建过程,还为CD提供了透明、安全和高效的制品管理,从而提升了整体部署流程的可管理性。
一、Nexus是什么
Nexus是由Sonatype提供的仓库管理工具,广泛用于存储和管理构建产物、依赖包、镜像等。
它支持多种常见的仓库格式,包括 Maven、npm、Docker、NuGet、RubyGems 等,提供了丰富的功能来管理软件生命周期中的各种构建产物和依赖。、
1.Nexus仓库类型
Nexus的仓库有以下3种类型,分别是Hosted(托管仓库)、Proxy(代理仓库)、Group(组合仓库。
Nexus 仓库类型 | Artifactory 仓库类型 | 功能描述 |
---|---|---|
Hosted | Local | 存储你自己上传的构建产物和库(如 Docker 镜像、Maven JAR 包等)。 |
Proxy | Remote | 代理外部仓库(如 Maven Central、Docker Hub),并缓存其内容。 |
Group | Virtual | 将多个仓库(包括 Hosted 和 Proxy 仓库)聚合为一个统一的访问点。 |
2.Nexus仓库支持的文件格式
Nexus的仓库不仅有三种类型(Hosted、Proxy、Group),而且每一种类型都支持存储多种构建物格式,使得它能够管理不同语言、平台和工具的构建产物。
仓库类型 | 格式 | 描述 |
---|---|---|
Hosted(托管仓库) | Maven | 用于存储 Maven 构建工具生成的 JAR、WAR、POM 文件等构建产物。 |
npm | 用于存储 npm 包,JavaScript 项目的依赖包。 | |
Docker | 用于存储和管理 Docker 镜像。 | |
NuGet | 用于存储 NuGet 包,.NET 环境中的包格式。 | |
Raw | 用于存储任何类型的 原始文件(例如文本文件、配置文件、二进制文件等)。 | |
RPM | 用于存储 RPM 包,管理 Linux 系统上的安装包(如 CentOS、RedHat)。 | |
Pypi | 用于存储 Python 包,pip 使用的包。 |
|
Apt | 用于存储 Debian 或 Ubuntu 系统上的 deb 包。 | |
Proxy(代理仓库) | Maven | 用于代理外部 Maven 仓库(如 Maven Central),缓存依赖并提升构建效率。 |
npm | 用于代理外部 npm 仓库,缓存 npm 包,提升前端构建速度。 | |
Docker | 用于代理外部 Docker 镜像仓库,缓存镜像并加速容器构建过程。 | |
NuGet | 用于代理外部 NuGet 仓库,缓存 .NET 依赖包。 | |
Raw | 用于代理外部原始文件仓库,缓存文件。 | |
Group(组合仓库) | Maven | 将多个 Maven 仓库(托管和代理)组合成一个仓库,方便访问不同的 Maven 依赖和构建产物。 |
npm | 将多个 npm 仓库(托管和代理)组合成一个仓库,方便前端项目管理和依赖拉取。 | |
Docker | 将多个 Docker 仓库组合成一个虚拟仓库,方便统一管理和拉取镜像。 | |
NuGet | 将多个 NuGet 仓库组合成一个虚拟仓库,便于 .NET 项目统一依赖管理。 | |
Raw | 将多个 Raw 仓库组合成一个虚拟仓库,方便存储和管理不同来源的原始文件。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南