一、Nexus是什么
Nexus的全称是Nexus Repository Manager,它是一个强大的仓库管理器,极大地简化了内部仓库的维护和外部仓库的访问。我们主要用它来搭建公司内部的maven私服。但是它的功能不仅仅是创建maven私有仓库这么简单,还可以作为nuget、docker、npm、bower、pypi、rubygems、git lfs、yum、go、apt等的私有仓库,功能非常强大。
Nexus还具备如下一些优点使其日趋成为最流行的 Maven 仓库管理器:
1、提供了强大的仓库管理功能,构件搜索功能;
2、基于 REST,提供友好的 UI 客户端;
3、内存占用少;
4、基于简单文件系统而非数据库。
二、没有Maven私服会有什么问题
如果没有私服,我们所需的所有构件都需要通过 Maven 的中央仓库或者第三方的 Maven 仓库下载到本地,而一个团队中的所有人都重复的从 Maven仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会导致开发效率下降,影响项目的进程。
另外,很多情况下项目的开发都是在内网进行的,可能根本连接不了 Maven 的中央仓库和第三方的 Maven 仓库。
我们开发的公共构件如果需要提供给其它项目使用,也需要发布到私服。
三、Nexus私服的优点
所谓的私服,就是在局域网中的一种特殊的远程仓库,它的作用是代理远程中央仓库和部署第三方构件。有了私服之后,当Maven需要下载构件的时候,直接请求私服即可,私服上如果存在所需的构件,则直接从私服进行下载到本地仓库;反之,如果私服上不存在所需的构件,私服会请求外部的远程仓库(中央仓库),先将构件下载到私服,然后再提供给本地仓库进行下载。这样,第二个开发人员如果同样需要此构件,就可以直接从私服进行下载到本地仓库了。
搭建私服的优点有如下一些优点:
1、减少网络带宽流量;
2、加速 Maven 构建;
3、部署第三方构件;
4、提高稳定性、增强控制;
5、降低中央仓库的负载。
四、安装Nexus
(1)解压
# tar -xzvf nexus-3.26.1-02-unix.tar.gz
解压后会得到两个目录,分别是nexus-3.26.1-02(nexus 服务目录)和sonatype-work(私有库目录)。
(2)修改访问端口
# vim nexus-3.26.1-02/etc/nexus-default.properties
# 修改application-port=8081为application-port=你的端口
我这里选择使用默认8081端口。
(3)系统防火墙开放8081端口
# 启动防火墙
# systemctl start firewalld.service
# 防火墙开放8081端口
# firewall-cmd --zone=public --add-port=8081/tcp --permanent
# 重启防火墙
# firewall-cmd --reload
# 检查8081端口是否已开启
# firewall-cmd --query-port=8081/tcp
# 输出yes说明8081端口已开启
(4)启动Nexus
# cd nexus-3.26.1-02/bin/
# 前台启动
# ./nexus run
# 前台停止
# ctrl+c
# 后台启动
# ./nexus start
# 后台停止
# ./nexus stop
五、访问Nexus
地址:ip地址:8081
首次登录时,会提示初始密码的存储位置,登录后可修改。
# vim /root/nexus3/sonatype-work/nexus3/admin.password
# 密码字符串格式如下:
# e3de7255-f17d-4b8e-9f02-69e4887ad039
登陆后,系统提示修改密码