Nexus 制品管理平台

庆云2年前技术文章1913

Nexus 官网:https://www.sonatype.com/nexus-repository-oss

Nexus 是一个很强大的私服软件,不仅仅是作为 Java 的 Maven 打包使用,同样的也支持 pypi、yum 源、apt 源、npm 等等。

如果没有私服,我们所有 maven、pypi 等下载的包都需要通过官方的仓库或是第三方的镜像仓库,如果整个 Team 都这么做,那么每次打包下载的时候就会浪费大量的时间花费在网路 IO 上。

私服的概念就是在本地架设一个中央仓库,在这个中央仓库上配置远程服务器源,当我们客户端需要某些包时,如果本地 Nexus 中央仓库没有这个包,就去远程服务器源中下载,下载成功后,这个包会保存在中央仓库中,下次再使用这个包时,直接从 Nexus 中央仓库获取,就无需从远程服务器下载了。

1、Nexus3 部署

Dockerhub:https://hub.docker.com/r/sonatype/nexus3

1.下载镜像

sudo nerdctl pull sonatype/nexus3:3.38.0

2.创建映射目录

sudo mkdir /srv/nexus3/data -psudo chmod 777 -R /srv/nexus3/

3.启动容器

# dockerdocker run -itd \--privileged=true --name=nexus3 \-p 8081:8081 \-v /srv/nexus3/data:/nexus-data \sonatype/nexus3:3.38.0# containerdsudo nerdctl run -d --name nexus3 \--net host \-p 8081:8081 \--privileged=true  \-v /srv/nexus3/data:/nexus-data \sonatype/nexus3:3.38.0

4.获取初始密码

# dockerdocker exec -i nexus3 cat /nexus-data/admin.password# containerdnerdctl exec -i nexus3 cat /nexus-data/admin.password

5.停止容器

停止容器时,请务必留出足够的时间让数据库完全关闭

docker stop --time=120 nexus3

2、Nexus3 制品库搭建

2.1 搭建 Maven 私服

默认开发同学在进行开发的时候会使用一些包管理工具,例如:maven, ant, gradle 这些都是常见项目编译构建工具。这些工具可以理解为是一个命令行工具,本身不会存储任何依赖包,而是通过公网官方的仓库中下载当前项目构建所需要的包到私服。下载成功后,这个包会保存在私服中,下次再使用这个包时,直接从 Nexus 中央仓库获取,就无需从远程服务器下载了。

1.png


使用私服,就是在企业内部建立单一的可信源,例如:我们在公司通过 nexus 创建一个代理仓库, 将公网仓库中的 maven 包代理到内网仓库中。这样整个公司的同学就可以直接访问内网的私服进行下载构建依赖包。(减少了引入不信任依赖的风险)

代理仓库不会一下子把公网仓库中的所有包下载到本地,而是按需缓存。 例如:此时我需要使用依赖包,如果代理仓库中没有,则请求外部服务器下载这个包并进行缓存;如果代理仓库中有,则直接从代理仓库中获取。

安装 nexus 后,Repositories 存在默认仓库,这些仓库是官方默认配置好的 maven 私服,可以直接使用。

2.png

2.2 搭建 Maven 本地仓库

本地仓库以 Maven 为例:

  • RELEASE 类型仓库(存放制品稳定版)

  • SNAPSHOT 类型仓库(存放制品开发版)

搭建:Administration — Repository — Repositories — Create repository — maven2 (hosted)

定义:名称、存储、是否允许重新上传

注意:release 类型的仓库只能存放 release 版本的包。不能将 release 类型的包上传到 snapshot 仓库,同理 snapshot 类型的包也不能上传到 release 类型的仓库中。


本地仓库以 raw 为例: 普通的文件存储

搭建:Administration — Repository — Repositories — Create repository — raw (hosted)

定义:名称、存储、是否允许重新上传

3、CI 流水线集成

在开始引入制品的时候,就应该制定制品库的管理和使用规范。有了标准化的规范之后,就很容易实现自动化。为什么有些工作无法做成自动化?无标准)

3.1 约定制品规范

  • 版本号

    • 主版本号:表示项目的重大架构变更。

    • 次版本号:表示较大范围的功能增加和变化。

    • 修订版本号:表示重大 Bug 的修复。

    • 里程碑版本:表示某一个版本的里程碑。

  • 仓库命名

    • 仓库组(<技术>-group)

      例:maven-group

    • 仓库(<业务简称>-<技术>-<类型>)

      例:devops-maven-RELEASE

    • 制品(<应用名称>-<版本号>)

      例:demo-devops-service-1.1.0.jar

  • 目录结构

3.2 管理页面上传制品

选择制品,填写制品的坐标信息:

3.png

查看上传后的制品:

4.png


相关文章

Hadoop 重新编译-解决root用户提交任务报错Running as root is not allowed

Hadoop 重新编译-解决root用户提交任务报错Running as root is not allowed

本文主要解决Hadoop root用户无法提交问题Running as root is not allowedLinux架构:arm或者x86都可以Jdk版本:jdk1.8cmake版本:3.19Ha...

大数据自动化巡检系统EasyCare使用简介

大数据自动化巡检系统EasyCare使用简介

1、EasyCare登录填写系统初始化用户密码之后登录系统,进入系统首页2、系统首页系统首页显示当前巡检的集群数量,巡检指标,巡检模版,当天巡检情况等3、配置管理配置管理菜单配置初始化巡检基础信息,包...

Flume使用案例之Flume与Flume之间数据传递,多Flume汇总数据到单Flume

目标:flume11监控文件hive.log,flume-22监控某一个端口的数据流,flume11与flume-22将数据发送给flume-33,flume33将最终数据写入到HDFS。分步实现:1...

Phoenix 安装使用文档

Phoenix 安装使用文档

Phoenix 安装使用文档下载Phoenix直接到Phoenix官网下载安装包,官网地址为:http://mirror.bit.edu.cn/apache/phoenix/备注:Phoenix 版本...

CDH实操--Zookeeper角色迁移

CDH实操--Zookeeper角色迁移

Zookeeper角色迁移计划1.集群Zookeeper服务角色实例分配情况2.由于角色规划不合理,需要将cdp1.hadoop.com节点的Zookeeper实例实例迁移到cdp4.hadoop.c...

PostgreSQL 会话管理

说明当数据库发生持续的 CPU 使用率打高时,数据库中很可能正在跑一些大查询或者较复杂的 SQL,如果不及时处理很可能会影响到业务,此时我们需要通过查询会话找到 “罪魁祸首” 并 kill 掉它,然后...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。