制品仓库 Nexus 安装、配置、备份、使用

news2024/11/25 10:49:46

目录

1.1 Nexus 优点

1.2 Nexus 仓库类型

2. 安装 Nexus

2.1 设置持久化目录

2.2 拉取 Nexus docker 镜像

2.3 运行并启动 Nexus

3. 系统配置

3.1 配置管理员密码

3.2 配置 LDAP

3.3 配置 Email 服务器

4. 配置 Repository

4.1 添加 Blob Stores

4.2 添加 Repositories

4.2.1 创建 hosted 宿主仓库

4.2.2 创建 proxy 代理仓库

4.2.3 创建 group 仓库组

5. 备份 Nexus

5.1 在 Task 下创建任务

5.2 选择任务类型

5.3 填写备份任务名字、备份位置、执行备份时间

5.4 点击创建任务,显示任务列表

5.5 进入任务列表,手动运行测试

5.6 手动备份 Blob 数据信息、Node ID

5.7 恢复备份

6. 使用制品库 Nexus

6.1 登录并查看制品库 Nexus

6.2 开发过程中,使用 npm-xxx 作为源

6.3 上传至组件库时的设置(本地 publish)

6.3.1 登录 hosted

6.3.2 package.json 设置

6.3.3 publish 没权限

6.3.4 允许匿名访问


Nexus 是一个强大的仓库管理器,极大地简化了 内部仓库的维护 和 外部仓库的访问

Nexus 支持 Docker、NPM、Bower 等等的仓库管理

1.1 Nexus 优点

节省外网带宽。大量对于外部仓库的重复请求,会消耗带宽,利用私服代理外部仓库,可以消除对外的重复构件下载,降低带宽的压力。

加速 NPM 构建。不停地连接请求外部仓库十分耗时,NPM 在执行构建的时候,在不停检查远程仓库的数据。利用私服,NPM 只检查局域网的数据,提高构建的速度。

部署第三方构件。当某个构件无法从任何一个外部远程仓库获得。建立私服之后,便可以将这些构件部署到私服,供内部的 NPM 项目使用。

提高稳定性,增强控制。NPM 构建高度依赖于远程仓库,当网络不稳定的时候,Maven 构建也会变得不稳定,甚至无法构建。私服缓存了大量构建,即使暂时没有网络,也可以正常的运行。

1.2 Nexus 仓库类型

hosted 宿主仓库:用于部署无法从公共仓库获取的构件(如 oracle 的 JDBC 驱动)以及自己或第三方的项目构件,比如:前端内部公共组件库;

proxy 代理仓库:代理公共的远程仓库,比如:npm 中央仓库,taobao 镜像;

group 仓库组:Nexus 通过 仓库组 的概念,统一管理多个仓库;在项目中 直接请求 仓库组,即可请求到仓库组管理的多个仓库。我们向它请求包(package)的时候,如果本地有,它就从本地提供;如果本地没有,它会从仓库下载到本地,再提供包;

2. 安装 Nexus

安装之前,需要确保已经安装了:

  • Linux 操作系统
  • Docker

2.1 设置持久化目录

在 Linux 命令行窗口下,执行下方命令:

  • 将在根目录创建 /sonatype/nexus-data
  • 赋予权限 —— 可读、可写、可执行

mkdir -p /sonatype/nexus-data && chmod 777 /sonatype/nexus-data

2.2 拉取 Nexus docker 镜像

在 Linux 命令行窗口下,执行以下命令:

  • 使用 docker 拉取镜像(PS:该操作需要联网,等待时间较长)

docker pull sonatype/nexus3

2.3 运行并启动 Nexus

使用 docker 运行 Nexus,设置以下内容:

  • 访问端口
  • 2.1 中创建的持久化目录

docker run -d -p 8081:8081 --name nexus -v /sonatype/nexus-data:/nexus-data sonatype/nexus3

命令执行完后,需要等待一会,使用 部署服务器的IP + 设置的端口,测试访问 Nexus

比如:http://xxx.xxx.x.xxx:6666/

3. 系统配置

3.1 配置管理员密码

初次安装完后,打开系统界面:

系统会提示用户输入 用户名、密码:

  • 用户名为 admin
  • 密码为一段随机串,在服务器设置的持久化目录 /sonatype/nexus-data/admin.password 中

 

输入完成后,按照提示,设置新密码

设置完新密码后,持久化目录下的文件 /sonatype/nexus-data/admin.password 会被自动删除

3.2 配置 LDAP

在设置中找到 LDAP,按照提示输入(如不清楚具体内容,可询问公司域控服务管理员)

 

点击 Next 按钮后,按照红框内选择,并填写内容

 

Verify user mapping 按钮 —— 测试获取用户列表

 

Verify login 按钮 —— 测试 LDAP 用户登录

创建成功

 

3.3 配置 Email 服务器

设置邮箱发件服务器相关参数,如果对应邮箱可以收到邮件,证明配置正常

4. 配置 Repository

4.1 添加 Blob Stores

您通过 代理存储库 下载或发布到 托管存储库 的二进制资产,存储在附加到这些存储库的 BLOB 存储区中。

在传统的单节点 NXRM 部署中,BLOB 存储与本地文件系统目录(通常在 Sonatype-Work 目录中)的原始关联。

4.2 添加 Repositories

4.2.1 创建 hosted 宿主仓库

一般用于发布开发的 npm 组件,比如:前端内部公共组件库、脚手架 等等

4.2.2 创建 proxy 代理仓库

可以代理 npm、yarn 和淘宝镜像

4.2.3 创建 group 仓库组

对外公开的仓库,集合了 hosted 和 proxy

 

5. 备份 Nexus

5.1 在 Task 下创建任务

 

5.2 选择任务类型

5.3 填写备份任务名字、备份位置、执行备份时间

5.4 点击创建任务,显示任务列表

 

5.5 进入任务列表,手动运行测试

 

运行结果为 OK 时,可以查看 备份服务对应的目录下,已经生成对应的文件了(3个文件component、config、security)

 

5.6 手动备份 Blob 数据信息、Node ID

Blob 数据信息 —— /sonatype/nexus-data/blobs

Node ID —— /sonatype/nexus-data/keystrokes

5.7 恢复备份

拷贝以上手动备份的文件,到新服务器上的对应目录

拷贝数据库文件,到目录 —— restore-from-backup

重启服务,看下是否正常

Nexus数据备份&恢复_一边学习一边哭的博客-CSDN博客_nexus备份和还原nexus的备份和恢复方案。https://blog.csdn.net/qq522044637/article/details/126867717

6. 使用制品库 Nexus

6.1 登录并查看制品库 Nexus

就是在 2.3 中写的地址,使用 域账号密码 登录

 

npm-xxx 是 group 类型,是下面三个的组合

  • npm-cli
  • npm-yarn
  • npm-vue-components

 

6.2 开发过程中,使用 npm-xxx 作为源

nrm add npm-xxx 地址

nrm use npm-xxx

6.3 上传至组件库时的设置(本地 publish)

6.3.1 登录 hosted

执行下方命令:

npm login --registry=http://1xx.xxx.x.xxx:xxxx/repository/npm-vue-components/

然后,输入用户名和密码(使用域帐号密码)

6.3.2 package.json 设置

注意 registry 设置的是 hosted 地址,不是 group 地址;

上传至组件库的,需在组件的 package.json 中添加

"publishConfig": {
	"registry": "http://xxx.xxx.xxx.xxx:xxxx/repository/npm-v2-components/"
}

6.3.3 publish 没权限

如果遇到 publish 没有权限,可以找管理员确认下帐号有没有相关权限

6.3.4 允许匿名访问

允许匿名访问,下载组件库中的内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/116289.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软考高级考哪个好?

软考高级一共5个科目,含金量都差不多,每个人考证的需求各不相同,合适自己情况的才是最有用的证书。看你自己的工作、专业与哪个更相近,再来深入学习备考的,当然自己也要对考试取证有一定的信心。 高级科目介绍&#x…

【LeetCode每日一题】——剑指 Offer II 072.求平方根

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【题目注意】九【时间频度】十【代码实现】十一【提交结果】一【题目类别】 二分查找 二【题目难度】 简单 三【题目编号】 剑指 Offer II 072.求平方根 …

《图解TCP/IP》阅读笔记(第七章 7.5)—— OSPF 开放最短路径优先协议

7.5 OSPF OSPF(Open Shortest Path First,开放最短路径优先)是一种链路状态性的路由协议,即使网络中有环路,也可以进行稳定的路由控制。 另外,OSPF支持子网掩码,使得在RIP中无法实现的可变长度…

在简历上写了“精通自动化测试,阿里面试官跟我死磕后就给我发了高薪 offer

事情是这样的 前段时间面试了阿里,大家也都清楚,如果你在简历上面写着你精通 XX 技术,那面试官就会跟你死磕到底。 我就是在自己的简历上写了精通自动化测试,然后就开启了和阿里面试官的死磕之路,结果就是拿到了一份…

【Lilishop商城】No4-2.业务逻辑的代码开发,涉及到:会员B端第三方登录的开发-平台注册会员接口开发

仅涉及后端,全部目录看顶部专栏,代码、文档、接口路径在: 【Lilishop商城】记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括接口类、业务类,具体的结合源代…

AMQP协议:消费者、生产者与RibbitMQ节点之间的交互流程,RibbitMQ的核心组成部分

原文链接 一、什么是AMQP协议? AMQP全称:Advanced Message Queuing Protocol(高级消息队列协议)。是应用层协议的一个开发标准,为面向消息的中间件设计。 基于此协议的客户端与消息中间件可以传递消息,不受客户端/中间件的不同产品…

小程序之首页搭建——Flex布局

目录 Flex布局简介 什么是flex布局? flex属性 学习地址: 视图层 View WXML 数据绑定 列表渲染 条件渲染 模板 WXSS 尺寸单位 样式导入 内联样式 选择器 全局样式与局部样式 WXS 示例 注意事项 页面渲染 数据处理 会议OA项目-首页 …

Python实现照片、视频一键压缩及备份源代码

代码 完整代码下载地址:Python实现照片、视频一键压缩及备份源代码 第一次运行前先编辑脚本,修改其中的主库位置、随库位置,保存。 此后要更新随库时,只要双击运行脚本即可。 运行结果示例: 主库位置:D…

用了这么多年的 SpringBoot 你知道什么是 SpringBoot 的 Web 类型推断吗?

用了这么多年的 SpringBoot 那么你知道什么是 SpringBoot 的 web 类型推断吗? 估计很多小伙伴都不知道,毕竟平时开发做项目的时候做的都是普通的 web 项目并不需要什么特别的了解,不过抱着学习的心态,阿粉今天带大家看一下什么是 …

jQuery库冲突

文章目录jQuery库冲突原因jQuery.noConflict()如还想使用$可以这么做jQuery库冲突 原因 在某些情况下,可能有必要在同一个页面中使用多个JavaScript库。但是很多库都使用了“$”这个符号(因为它简短方便),这时就需要用一种方式来…

Oracle中Null和无值的区别

以Leetcode第176题“第二高的薪水”为例。 首先说一下这道题最容易理解、最容易实现的解法&#xff0c;就是比最大值小的值里最大的值。 SELECT MAX(salary) AS SecondHighestSalary FROM Employee WHERE salary < (SELECT MAX(salary) FROM Employee)通过这道题目&#…

泛型------数据结构

泛型 问题:下面是一个简单的顺序表&#xff0c;我们在这里面实现的一个顺序表&#xff0c;是存放的数据类型只有int类型&#xff0c;这就会很不通用&#xff0c;如果我们想什么样的类型的数据都想要放进去,就要把这个数组的类型设置成Object类型 能不能啥样的类型都可以存放呢&…

ArcGIS中ArcMap栅格重采样操作与算法选择

本文介绍在ArcMap软件中&#xff0c;实现栅格图像重采样的具体操作&#xff0c;以及不同重采样方法的选择依据。 在文章Python中ArcPy实现栅格图像文件批量掩膜与批量重采样&#xff08;https://blog.csdn.net/zhebushibiaoshifu/article/details/124282764&#xff09;中&…

optimization问题的解决

目录 临界点critical point 基本介绍临界点两种情况的区分 g和H的举例介绍根据H区分Saddle Point和local minima 批次Batch batch大小的比较 时间的开销训练集和测试集的效果 训练集效果测试集效果 动量Momentum 一般的Gradient Descent带有动量的Gradient Descent 2021 -…

异步通信技术AJAX | 原理剖析、发送Ajax请求四步

目录 一&#xff1a;快速搞定AJAX&#xff08;第一篇&#xff09; 1、传统请求及缺点 2、AJAX请求原理剖析 3、AJAX概述 4、XMLHttpRequest对象 5、AJAX GET请求 6、AJAX GET请求提交数据 7、AJAX GET请求的缓存问题 8、AJAX POST请求及模拟表单提交数据 9、经典案例…

C语言基础--数组

文章目录一维数组一、一维数组的创建和初始化&#xff08;1&#xff09;一维数组的创建&#xff08;2&#xff09;一维数组的初始化1&#xff09;整形数组初始化2&#xff09;字符数组初始化3&#xff09;sizeof与strlen4&#xff09;总结二、一维数组的使用三、一维数组在内存…

基于C++实现(控制台)职工信息管理系统【100010060】

职工信息管理系统 一、实验内容 ​ 设计一个职工信息管理案例&#xff0c;实现不同类别职工的工资数据。职工的种类包括&#xff1a;正式职工和临时工。定义一个基本的职工类&#xff0c;基本信息包括&#xff1a;编号、姓名、性别、年龄、家庭住址、基本职务工资。派生出正式…

Quarkus实现第一个Hello World

Quarkus介绍 Quarkus 是一个为 Java 虚拟机&#xff08;JVM&#xff09;和原生编译而设计的全堆栈 Kubernetes 原生 Java 框架&#xff0c;用于专门针对容器优化 Java&#xff0c;并使其成为无服务器、云和 Kubernetes 环境的高效平台。 Quarkus 可与常用 Java 标准、框架和库…

php正则匹配反斜杠问题

php正则匹配反斜杠问题&#xff1a; 之前做了一道题&#xff0c;发现php中正则匹配反斜杠好像有点问题。 我们先看下面代码&#xff1a; <?php$cmd "\\";echo $cmd.PHP_EOL;if(preg_match("/\\\\|\\/",$cmd)) {echo "yes";} else {echo …

springdata-jpa-hibernate-03

springdata-jpa-hibernate-03 多表关联操作 首先加上这个lombok依赖,可以使代码更加简洁 一对一 account类 customerRepository接口 测试 一对多 message类 测试 多对一 在上面一对多的基础上加上这句代码就行 MessageRepository接口 测试&#xff1a; 多对多…