手把手教你安装Nexus
为什么要构建Nexus私服
- 如果没有Nexus私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会影响项目的进程。
- 很多情况下项目的开发都是在内网进行的,连接不到maven仓库怎么办呢?开发的公共构件怎么让其它项目使用?这个时候我们不得不为自己的团队搭建属于自己的maven私服,这样既节省了网络带宽也会加速项目搭建的进程。
Nexus安装环境
- 介质:nexus-3.19.1-01
- 操作系统:CentOS7+
- 硬件: 4C-8G-40G
- 软件:JDK8+
- 用户权限:
-
使用专用的操作系统用户帐户在给定主机上运行nexus。新建用户:nexus,密码:nexus
-
足够的文件句柄限制:确保用户的打开文件描述符数量限制增加到65,536或更高(/etc/security/limits.conf)
-
Nexus安装步骤
- 下载地址:https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/3/nexus-3.19.1-01-unix.tar.gz
下载需要翻墙
- root用户登录服务器创建nexus用户并授权
groupadd nexus
useradd nexus -g nexus
passwd nexus
提示输入密码:nexus
再次输入密码:nexus
mkdir -p /usr/local/nexus/
chown -R nexus:nexus /usr/local/nexus/
chmod 777 /usr/local/nexus/
- nexus用户登录服务器,上传nexus-3.19.1-01-unix.tar.gz至/usr/local/nexus/目录,并解压
cd /usr/local/nexus/ && tar -zxvf nexus-3.19.1-01-unix.tar.gz
mv nexus-3.19.1-01 nexus
- 修改nexus启动初始化内存(不是必须的,视服务器配置决定,4C8G则不需要修改)
vi /usr/local/nexus/nexus/bin/nexus.vmoptions(默认2700m)
- 修改nexus端口(不是必须的,默认监听端口8081)
vi /usr/local/nexus/nexus/etc/nexus-default.properties
- 启动:
cd /usr/local/nexus/nexus/bin && ./nexus start
或者
cd /usr/local/nexus/nexus/bin && ./nexus run &
启动成功的提示:Starting nexus
----------------------------------------------
如果是root用户启动,则会提示:
WARNING: ************************************************************
WARNING: Detected execution as "root" user. This is NOT recommended!
WARNING: ************************************************************
Starting nexus
说明已经安装启动成功,上面报错意思是nexus建议不要用root用户来启动nexus,但并不影响启动
- 检查nexus进程:
ps -ef | grep nexus
-
nexus日志目录:
/usr/local/nexus/sonatype-work/nexus3/log
-
浏览器直接访问:http://ip:port
Nexus搭建maven私服
- 首次登陆,系统会提示你admin的密码存放在服务端某个文件中。(根据提示修改密码即可)
- 登陆admin后,可以点击上面的“设置”图标,在“设置”里可以添加用户
- 创建仓库:
- 创建proxy仓库 作用是去远程拉取jar包
- 创建hosted仓库 作用是存放本地上传的三方jar包
- 创建group仓库 作用是将proxy和hosted放到这个组里,进行统一管理
proxy建议配置阿里云maven地址:http://maven.aliyun.com/nexus/content/groups/public
- 这里多提一个小知识!!!有的时候,我们会用到第三方仓库作为proxy,此时需要配置Routing Rules,即声明什么jar该从什么proxy下载。此处以jeecg仓库为例:
意思就是所有下载路径包含
/org/jeecgframework/
的jar,全部去jeecg proxy下载
意思就是所有下载路径包含
/org/jeecgframework/
的jar,全部禁止从aliyun proxy下载
- maven设置settings:
<mirror>
<id>nexus-xu</id>
<name>internal nexus repository</name>
<url>http://ip:8081/repository/java-group/</url>
<mirrorOf>!internal.repo,*</mirrorOf>
</mirror>
- 然后build项目,查看项目是否从私服下载jar包
Nexus搭建npm私服
此处搭建过程同上
- 创建仓库:
- proxy(代理仓库):可以代理npm和淘宝镜像
- 创建hosted(私有仓库):用于发布个人开发的npm组件
- 创建group(组合仓库):对外公开的仓库,集合了hosted和proxy
proxy建议配置淘宝镜像:https://registry.npm.taobao.org
- 客户端设置npm:
npm config set registry http://ip:8081/repository/npm-group/
参考文档
- System Requirements
- Nexus Repository Manager - Proxying Maven and npm Quick Start
- Linux搭建Nexus3.X私服
- 使用nexus搭建npm私服
备注
- 文章写得不是很详细,具体可以通过实际操作,总结经验,不喜勿喷。