Nexus-[功能简介|容器方式安装|使用方法]
工作流定义:
- 集成流水线: 提交代码,构建,单测,代码扫描,上传制品【生成制品】
- 制品晋级流水线:输入版本,选择晋级策略。(将制品复制到对应环境的仓库)
- 发布流水线: 输入版本号, 输入部署环境.(从对应环境的制品库中取制品)
制品类型: 二进制制品, docker镜像
核心技能点:
- 制品库管理规范(创建)
- 上传制品
- 晋级制品
- 下载制品
Nexus基本功能简介
从3.x开始,它默认支持许多主流的软件包格式。Docker、Maven、Npm:
仓库类型:
- group:这是一个仓库聚合的概念,用户仓库地址选择 Group 的地址,即可访问 Group 中配置的,用于方便开发人员自己设定的仓库。maven-public 就是一个 Group 类型的仓库,内部设置了多个仓库,访问顺序取决于配置顺序,3.x 默认为 Releases、Snapshots、Central,当然你也可以自己设置。
- hosted:私有仓库,内部项目的发布仓库,专门用来存储我们自己生成的 jar 文件
- snapshots:本地项目的快照仓库
- releases: 本地项目发布的正式版本
- proxy:代理类型,从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的 Configuration 页签下Remote Storage 属性的值即被代理的远程仓库的路径),如可配置阿里云 maven 仓库
- central:中央仓库
代理仓库 : Maven、Npm等。用于存储外网公共仓库中的插件和依赖,不可进行修改和私自上传。
Nexus3-docker安装部署配置
## 下载镜像
[root@jeekins data]# docker pull sonatype/nexus3:3.35.0
## 创建数据存储目录
mkdir -p /data/nexus3/data
chown -R 200 /data/nexus3/
## 启动容器
docker run -d \
--privileged=true --name=nexus3 \
-p 8081:8081 \
-e NEXUS_CONTEXT=nexus \
-v /data/nexus3/data:/nexus-data \
--restart always \
--privileged=true \
--net sonarqube-tier \
sonatype/nexus3:3.35.0
查看日志来确定Nexus是否已启动并准备就绪;
docker logs nexus3 -f
在日志中,看到Started Sonatype Nexus OSS 3.35.0-02,这意味着Nexus可以使用了。现在转到浏览器并打开:
http://your-ip-addr:8081/nexus
安装完成后, 默认的admin账号密码存储在了数据目录,获取初始化密码:
[root@jeekins data]# cat nexus3/data/admin.password
搭建Maven私服(代理仓库)
默认开发同学在进行开发的时候会使用一些包管理工具,例如:maven
、ant
、gradle
这些都是常见项目编译构建工具 。这些工具可以理解为是一个命令行工具, 本身不会存储任何依赖包,而是通过公网官方的仓库中下载当前项目构建所需要的包。 (内网的速度要比公网快,这会直接影响管道的构建速度)
使用私服,就是在企业内部建立单一的可信源, 例如:我们在公司通过nexus创建一个代理仓库, 将公网仓库中的maven包代理到内网仓库中。 这样整个公司的同学就可以直接访问内网的私服进行下载构建依赖包。(减少了引入不信任依赖的风险)
代理仓库不会一下子把公网仓库中的所有包下载到本地,而是按需缓存。 例如: 此时我需要使用aa这个包, 如果代理仓库中没有, 则请求外部服务器下载这个包并进行缓存。第二次访问的时候,就直接访问代理仓库了。
安装nexus后,默认存在以下图中的仓库, 这些仓库是官方默认配置好的maven私服。(可以直接使用)
进入其中一个仓库, 可以看到默认的配置。即: 代理公网repo1中的包到本地;
搭建制品库(本地仓库)
本地仓库:以Maven为例:
- RELEASE类型仓库(存放制品稳定版)
- SNAPSHOT类型仓库(存放制品开发版)
切记:release类型的仓库只能存放release版本的包。不能将release类型的包上传到snapshot仓库,同理snapshot类型的包也不能上传到release类型的仓库中。
定义和配置仓库的信息: 名称、存储、是否允许重新上传;
创建好本地仓库 ,上次包
[root@jeekins conf]# pwd /data/apache-maven-3.8.3/conf [root@jeekins conf]# ll settings.xml -rw-r--r-- 1 root root 10992 10月 9 16:47 settings.xml
<mirror> <id>自己定义</id> <mirrorOf>*</mirrorOf> <name>maven repo</name> <url>http://192.168.1.110:8081/nexus/repository/mavenrepo/</url> </mirror>
<dependency> <groupId>hwf.com</groupId> <artifactId>test</artifactId> <version>1.0</version> </dependency>
搭建制品库(组仓库)
<mirror> <id>自己定义</id> <mirrorOf>*</mirrorOf> <name>maven repo</name> <url>http://192.168.1.110:8081/nexus/repository/hwf-maven-group/</url>

评论