【DevOps工具篇】Nexus的仓库详解

2023-01-07T18:24:18+08:00 | 4分钟阅读 | 更新于 2023-01-07T18:24:18+08:00

Macro Zhao

【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种主要的仓库类型:

  1. 组合(Group)
  2. 托管(Host)
  3. 代理(Proxy)

在提供的图片中,您会注意到诸如“central”、“snapshot”等不同的文件夹。它们简化了分类工件的过程,使开发者更容易知道每种类型的工件应该放在哪里。 那么,一般的规则是什么呢?非常简单。每个文件夹对应于特定类型的仓库,帮助您决定在哪里放置工件。让我们快速了解一下这些文件夹背后的逻辑。

1. 公共仓库(类型:组合)

**用例:**共享开源组件 顾名思义,这里我们保存所有需要向公众提供的文件夹(工件)。它是共享库、框架和其他代码片段给更广泛的开发者社区的首选地方。

2. 发布仓库(类型:托管)

**用例:**稳定发布 老实说,我们的代码并不总是准备好发布。Nexus允许您区分哪些发布已经准备好发布,哪些还没有。在这些类型的仓库中,您推送那些经过良好测试并指定进一步处理的构建。

3. 快照仓库(类型:托管)

**用例:**持续集成和测试 快照就像正在进行中的工作。Nexus中的快照仓库是您在开发过程中存储项目演变版本的地方。这对于持续集成特别有用,它使开发者能够访问最新的、可能不稳定的构建以用于测试目的。

4. 托管仓库(类型:托管)

用例:您的私有存储 将托管仓库视为Nexus中的个人存储单元。您在这里保存的是独特的、内部使用的工件,这些工件不适合公开消费。大多数时候,您使用的是托管仓库,无论是快照还是发布类型。

5. 组合仓库(类型:组合)

**用例:**简化访问 组合仓库就像一个虚拟仓库,它简化了对多个仓库的访问。您可以将各种仓库,无论是公共的、发布的还是快照的,组合成一个单一的组合。这样,开发者只需要配置一次构建工具,就可以访问他们需要的所有仓库。

6. 代理仓库(类型:代理)

Nexus中最重要的仓库类型是代理仓库。为了理解这一点,让我们考虑一个例子,您正在开发一个Node.js应用程序。作为开发者,当您运行**npm i**命令安装依赖项时,系统可能被配置为防止与外部第三方仓库直接通信。在这种情况下,您的系统将与Nexus通信,请求它获取所需的包。

以下是它的工作原理:

  1. **本地检查:**Nexus首先检查其本地内存,看是否已经存储了请求的依赖项。
  2. **代理到第三方管理器:**如果本地没有找到依赖项,Nexus将作为代理到第三方管理器(比如这里的npm)。它从外部仓库获取所需的依赖项。
  3. **缓存以优化:**重要的是,Nexus将这些依赖项本地缓存。这意味着如果再次发出相同的请求,Nexus可以直接从其缓存中提供依赖项,而无需回到外部仓库。这种缓存机制通过减少重复外部获取的需求,显著提高了性能。

结论

在我们Nexus博客系列的这一部分中,我们探讨了Nexus仓库的类型。我们学习了何时使用哪种类型的仓库。还有许多内容,但请不要担心,我们会在这里涵盖很多基础知识。敬请期待。

© 2011 - 2025 Macro Zhao的分享站

关于我

如遇到加载502错误,请尝试刷新😄

Hi,欢迎访问 Macro Zhao 的博客。Macro Zhao(或 Macro)是我在互联网上经常使用的名字。

我是一个热衷于技术探索和分享的IT工程师,在这里我会记录分享一些关于技术、工作和生活上的事情。

我的CSDN博客:
https://macro-zhao.blog.csdn.net/

欢迎你通过评论或者邮件与我交流。
Mail Me

推荐好玩(You'll Like)
  • AI 动·画
    • 这是一款有趣·免费的能让您画的画中的角色动起来的AI工具。
    • 支持几十种动作生成。
我的项目(My Projects)
  • 爱学习网

  • 小乙日语App

    • 这是一个帮助日语学习者学习日语的App。
      (当然初衷也是为了自用😄)
    • 界面干净,简洁,漂亮!
    • 其中包含 N1 + N2 的全部单词和语法。
    • 不需注册,更不需要订阅!完全免费!
  • 小乙日文阅读器

    • 词汇不够?照样能读日语名著!
    • 越读积累越多,积跬步致千里!
    • 哪里不会点哪里!妈妈再也不担心我读不了原版读物了!
赞助我(Sponsor Me)

如果你喜欢我的作品或者发现它们对你有所帮助,可以考虑给我买一杯咖啡 ☕️。这将激励我在未来创作和分享更多的项目和技术。🦾

👉 请我喝一杯咖啡

If you like my works or find them helpful, please consider buying me a cup of coffee ☕️. It inspires me to create and share more projects in the future. 🦾

👉 Buy me a coffee