Nexus私有仓库
Nexus介绍
Nexus是Maven仓库管理器,如果你使用Maven .你可以Maven中央仓库下载所需要的构件(atact),但这通常不是一个好的做法 ,你应该在本地架设一个Maven仓库服务器 在代理远程仓库的同时维护本地仓库 ,以节省带宽和时间, Nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,它基于REST ,友好的U是个extjs的REST客户端, 它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。
Nexus不是Maven的核心概念,它仅仅是一种衍生出来的特殊的Maven仓库。 对于Maven来说,仓库只有两种:本地仓库和远程仓库。
本地仓库就是我们在maven的setting.xml中配置的本地仓库地址。由于最原始的本地仓库是空的, Maven必须知道至少个可用的远程仓库,才能在执行Maven命令的时候下载到需要的构件。中央仓库是maven默认的远程仓库。
私服是架设在局域网的种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后.当Maven需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库.将构件下载到私服,再提供给本地仓库下载。
功能介绍
1.节省外网带宽。大量对于外部仓库的重复请求会消耗带宽,利用私服代理外部仓库,可以消除对外的重复构
件下载,降低带宽的压力。
2.加速Maven构建。加速Maven构建。不停地连接请求外部仓库+分的耗时, Maven在执行构建的时候不停地检查远程仓库的数据。利用私服, Maven只检查局域网的数据,提高构建的速度。
3.部署第三方构件。部署第三方构件。当某个构件无法从任何一个外部远程仓库获得。建立私服之后,便可以将这些构件部署到私服,供内部的Maven项目使用。
4.提高稳定性,增强控制。提高稳定性,增强控制。Maven构建高度依赖于远程仓库,因此,当网络不稳定的
时候, Maven构建也会变得不稳定,甚至无法构建。私服缓存了大量构建,即使暂时没有网络, Maven也可以正常的运行。
5.降低中央仓库的负荷。降低中央仓库的负荷。使用私服可以避免很多对中央仓库的重复下载,降低中央仓库的压力。
仓库类型说明默认仓库分类
group (仓库组类型) :又叫组仓库,用于方便开发人员,自己设定的仓库
hosted (宿主类型) :内部项目的发布仓库(内部开发人员发布上去存放的仓库)
proxy(代理类型) :从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage Location属性的值,即被代理的远程仓库的路径)
viual (虚拟类型) :虚拟仓库(这个基本上用不到)
使用私有仓库的优点
1)节省带宽
2)提高maven构建项目的速度
3)可以用来存储公司内部开发的依赖包和插件
服务器信息
| IP | 角色 |
|---|---|
| 172.16.1.12 | Nexus |
| 172.16.1.13 | Maven |
部署JDK
解压软件包
1 | tar zxf jdk-8u201-linux-x64.tar.gz |
配置环境变量
1 | vi /etc/profile |
加载环境变量
1 | source /etc/profile |
部署Nexus
解压软件包
1 | tar zxf nexus-3.14.0-04-unix.tar.gz |
配置文件
1 | vi /usr/local/nexus/etc/nexus-default.properties |
启动服务
1 | ln /usr/local/nexus/bin/nexus /usr/sbin/nexus |
端口起来的比较慢,耐心等待
访问
172.16.1.12:8081

默认提供的用户
admin
admin123

创建role
设置——security——roles——addrole——设置roleid,名字以及权限——添加权限nx-all——保存


创建用户
设置——security——users——adduser——设置用户名,密码,邮箱,给用户添加role——保存



创建代理仓库maven2-proxy
Repositories——create repository——maven2-proxy——添加仓库id,以及代理的仓库URL(阿里http://maven.aliyun.com/repository/public)——保存

创建本地仓库maven2-hosted
Repositories——create repository——maven2-hosted——添加仓库id,选择仓库类型为release——保存

再次创建maven2-hosted
Repositories——create repository——maven2-hosted——添加仓库id,选择仓库类型为snapshot——选择运行多测发布同一产品allow redeploy——保存

创建仓库组group
Repositories——create repository——maven2-groups——添加仓库id,添加组中的成员(成员为上面创建的三个仓库)——保存

放行防火墙、沙盒
1 | systemctl stop firewalld |
复制仓库组的URL

部署Maven
略……
修改配置文件
取消注释
1 | vi /usr/local/maven/conf/settings.xml |
构建项目
1 | mvn archetype:generate -DgroupId=com.test.one -DartifactId=one -DarchetypeAritifactId=maven-archetype-quickstart -DarchetypeCatalog=internal |
修改项目中pom文件
发布测试版数据
1 | vi /root/one/pom.xml |

修改主配置文件
1 | vi /usr/local/maven/conf/settings.xml |
snap:测试版
release:发行版
进入项目目录
1 | cd /root/one |
nexus主机
验证




查看测试版仓库中测试版数据是否发布成功


maven主机
修改项目中pom文件
发布发行版数据
1 | vim /root/one/pom.xml |

进入项目目录
1 | cd /root/one |
nexus主机
验证发行版仓库中的发行版数据是否发布成功


