Linux下Maven私服Nexus3.x环境构建操作记录
原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79553747
私服介绍
私服是指私有服务器,是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构建。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。
Nexus介绍
Nexus是一个强大的Maven仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问。如果使用了公共的Maven仓库服务器,可以从Maven中央仓库下载所需要的构件(Artifact),但这通常不是一个好的做法。正常做法是在本地架设一个Maven仓库服务器,即利用Nexus私服可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact。
- Nexus在代理远程仓库的同时维护本地仓库,以降低中央仓库的负荷,节省外网带宽和时间,Nexus私服就可以满足这样的需要。
- Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。
- Nexus使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用。
- Nexus支持WebDAV与LDAP安全身份认证。
- Nexus还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。
为什么要构建Nexus私服?
如果没有Nexus私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会影响项目的进程。很多情况下项目的开发都是在内网进行的,连接不到maven仓库怎么办呢?开发的公共构件怎么让其它项目使用?这个时候我们不得不为自己的团队搭建属于自己的maven私服,这样既节省了网络带宽也会加速项目搭建的进程,当然前提条件就是你的私服中拥有项目所需的所有构件。
总之,在本地构建nexus私服的好处有:
- 加速构建;
- 节省带宽;
- 节省中央maven仓库的带宽;
- 稳定(应付一旦中央服务器出问题的情况);
- 控制和审计;
- 能够部署第三方构件;
- 可以建立本地内部仓库;
- 可以建立公共仓库
这些优点使得Nexus日趋成为最流行的Maven仓库管理器。
Nexus安装
请先安装:JDK 和 Maven。可以参考:JDK安装(tar.gz)、Linux 下 Maven 的安装
Nexus的安装有两种实现方式:
1)war包安装方式
下载地址:https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.14.2-01.war
直接将war包放在tomcat的根目录下,启动tomcat就可以用了
2)源码安装方式
下载地址:https://www.sonatype.com/download-oss-sonatype
[root@peipei3514 /]# cd /usr/local/src/
# 下载nexus
[root@peipei3514 src]# wget https://sonatype-download.global.ssl.fastly.net/nexus/3/nexus-3.9.0-01-unix.tar.gz
# 解压到指定目录
[root@peipei3514 src]# tar -zvxf nexus-3.9.0-01-unix.tar.gz -C /usr/local/nexus-3.9.0-01/
# 启动nexus
[root@peipei3514 src]# /usr/local/nexus-3.9.0-01/nexus-3.9.0-01/bin/nexus start
启动后控制台的输出:
WARNING: ************************************************************
WARNING: Detected execution as "root" user. This is NOT recommended!
WARNING: ************************************************************
Starting nexus
上面在启动过程中出现告警:不推荐使用root用户启动。这个告警不影响 nexus 的正常访问和使用。
# nexus服务启动成功后,需要等好长一段时间,8081端口才起来
[root@peipei3514 src]# lsof -i:8081
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 1979 root 766u IPv4 26972 0t0 TCP *:tproxy (LISTEN)
java 1979 root 770u IPv4 26974 0t0 TCP peipei3514:tproxy->192.168.1.1:54767 (ESTABLISHED)
java 1979 root 771u IPv4 27418 0t0 TCP peipei3514:tproxy->192.168.1.1:54768 (ESTABLISHED)
java 1979 root 772u IPv4 27419 0t0 TCP peipei3514:tproxy->192.168.1.1:54783 (ESTABLISHED)
java 1979 root 773u IPv4 27420 0t0 TCP peipei3514:tproxy->192.168.1.1:54784 (ESTABLISHED)
java 1979 root 774u IPv4 27421 0t0 TCP peipei3514:tproxy->192.168.1.1:54785 (ESTABLISHED)
java 1979 root 775u IPv4 27422 0t0 TCP peipei3514:tproxy->192.168.1.1:54786 (ESTABLISHED)
访问 nexus:http://192.168.1.128:8081/
出现上述页面,说明配置nexus成功!点击右上角“Log in”,输入默认用户名(admin)和默认密码(admin123)登录。