【DevOps工具篇】Nexus的仓库详解
@[TOC]
推荐超级课程:
这是我们的Nexus基础知识系列的续篇。在上部分,我们了解了Nexus是什么以及为什么它很重要。我们通过在Linux上安装Nexus完成了那一部分,我还展示了如何启动Nexus容器。 在这一部分,我们将探讨Nexus中的仓库类型。
Nexus中的仓库类型
Nexus的一个关键功能是根据其角色组织仓库。以下是不同类型的Nexus仓库及其实际用例。 如果我们查看UI浏览器,我们可以看到一些已经为我们构建好的仓库。在这里,我们可以看到不同类型的仓库,如maven-central、maven-public、maven-releases等。让我们了解它们的用例。 注意:您可能还没有登录,所以为了登录,Nexus为我们创建了一个用户。以下是凭据: 用户名:admin 密码:您的admin用户密码位于服务器上的**/nexus-data/admin.password**
现在有3种主要的仓库类型:
- 组合(Group)
- 托管(Host)
- 代理(Proxy)
在提供的图片中,您会注意到诸如“central”、“snapshot”等不同的文件夹。它们简化了分类工件的过程,使开发者更容易知道每种类型的工件应该放在哪里。 那么,一般的规则是什么呢?非常简单。每个文件夹对应于特定类型的仓库,帮助您决定在哪里放置工件。让我们快速了解一下这些文件夹背后的逻辑。
1. 公共仓库(类型:组合)
**用例:**共享开源组件 顾名思义,这里我们保存所有需要向公众提供的文件夹(工件)。它是共享库、框架和其他代码片段给更广泛的开发者社区的首选地方。
2. 发布仓库(类型:托管)
**用例:**稳定发布 老实说,我们的代码并不总是准备好发布。Nexus允许您区分哪些发布已经准备好发布,哪些还没有。在这些类型的仓库中,您推送那些经过良好测试并指定进一步处理的构建。
3. 快照仓库(类型:托管)
**用例:**持续集成和测试 快照就像正在进行中的工作。Nexus中的快照仓库是您在开发过程中存储项目演变版本的地方。这对于持续集成特别有用,它使开发者能够访问最新的、可能不稳定的构建以用于测试目的。
4. 托管仓库(类型:托管)
用例:您的私有存储 将托管仓库视为Nexus中的个人存储单元。您在这里保存的是独特的、内部使用的工件,这些工件不适合公开消费。大多数时候,您使用的是托管仓库,无论是快照还是发布类型。
5. 组合仓库(类型:组合)
**用例:**简化访问 组合仓库就像一个虚拟仓库,它简化了对多个仓库的访问。您可以将各种仓库,无论是公共的、发布的还是快照的,组合成一个单一的组合。这样,开发者只需要配置一次构建工具,就可以访问他们需要的所有仓库。
6. 代理仓库(类型:代理)
Nexus中最重要的仓库类型是代理仓库。为了理解这一点,让我们考虑一个例子,您正在开发一个Node.js应用程序。作为开发者,当您运行**npm i**
命令安装依赖项时,系统可能被配置为防止与外部第三方仓库直接通信。在这种情况下,您的系统将与Nexus通信,请求它获取所需的包。
以下是它的工作原理:
- **本地检查:**Nexus首先检查其本地内存,看是否已经存储了请求的依赖项。
- **代理到第三方管理器:**如果本地没有找到依赖项,Nexus将作为代理到第三方管理器(比如这里的npm)。它从外部仓库获取所需的依赖项。
- **缓存以优化:**重要的是,Nexus将这些依赖项本地缓存。这意味着如果再次发出相同的请求,Nexus可以直接从其缓存中提供依赖项,而无需回到外部仓库。这种缓存机制通过减少重复外部获取的需求,显著提高了性能。
结论
在我们Nexus博客系列的这一部分中,我们探讨了Nexus仓库的类型。我们学习了何时使用哪种类型的仓库。还有许多内容,但请不要担心,我们会在这里涵盖很多基础知识。敬请期待。