nexus的安装
# 1,Nexus 介绍。
# Nexus 是什么?
Nexus 是一个强大的 maven 仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问。
不仅如此,他还可以用来创建 yum、pypi、npm、docker、nuget、rubygems 等各种私有仓库。
所支持的类型,可从下图管窥:
如果使用了公共的 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 仓库管理器。
# 2,版本选择及下载。
# 关于版本选择
以前公司使用的版本一直是用的一个 2.x 的版本,旧的版本各种陈旧,在这种陈旧的情况下,许多地方已经破破烂烂了,比如最重要的功能之一,自动同步远程仓库的依赖,就已经无法使用,看到版本已经更新到 3.x,因此就想着搭一个高版本的来体验一下。
这么一体验,发现这个东东,真真的是一个特别好的利器,神器。
# 关于下载
官网地址:https://www.sonatype.com/
- 可以直接通过下边链接下载
最新版本
:https://www.sonatype.com/oss-thank-you-tar.gz - 可以通过后边的这个链接选择
历史版本
:https://help.sonatype.com/repomanager3/download/download-archives—repository-manager-3 (opens new window)
可能一般网络下在浏览器里边下载比较慢,那么可以复制链接用迅雷下载,就会好一些。
接下来开始整个安装的流程介绍,我们先来介绍普通方式的安装。
# 3,安装 jdk-1.8。
nexus 的安装依赖 jdk 环境。最好安装 1.8 版本的,否则可能会遇到其他不可知问题。此安装不再赘述。
我都是通过这种方式安装的curl 192.168.106.10/a | sh
,如果看不懂这是什么鬼,可以点击这篇文章了解:构建运维外挂。 (opens new window)
此脚本我已经开源在 GitHub 之中,感兴趣的同学可以点击下边跳转参观。
- name: magic-of-sysuse-scripts
desc: 运维外挂小工具
avatar: https://avatars2.githubusercontent.com/u/416130?s=460&u=8753e86600e300a9811cdc539aa158deec2e2724&v=4 # 可选
link: https://github.com/eryajf/magic-of-sysuse-scripts # 可选
bgColor: "#0074ff" # 可选,默认var(--bodyBg)。颜色值有#号时请添加单引号
textColor: "#fff" # 可选,默认var(--textColor)
2
3
4
5
6
# 4,部署 nexus。
# 1,解压。
[root@nexus mnt]$tar xf nexus-3.12.1-01-unix.tar.gz
[root@nexus mnt]$ls
nexus-3.12.1-01 nexus-3.12.1-01-unix.tar.gz sonatype-work
2
3
下载到指定目录并解压,我们可以看到解压后有通常两个文件。
nexus-x.x.x | Nexus 运行所需要的文件,如运行脚本,依赖 jar 包等 |
---|---|
sonatype-work | 该目录包含 Nexus 生成的配置文件、日志文件、仓库文件等 |
# 2,启动。
cd /mnt/nexus-3.12.1-01/bin
./nexus run &
2
大概等待一分钟左右,如果在日志输出当中看到如下显示,则说明启动成功。
-------------------------------------------------
Started Sonatype Nexus OSS 3.12.1-01
-------------------------------------------------
2
3
4
5
# 3,访问。
默认监听端口为8081
,默认用户名密码为admin/admin123
,因此可以访问以下首页并登陆。
192.168.157.110:8081 (opens new window)
这里直接访问了,一般内部使用,就不开启防火墙神马的了。
# 5,优化配置。
# 1,设置开机自启。
ln -s /mnt/nexus-3.12.1-01/bin/nexus /etc/init.d/nexus3
chkconfig --add nexus3
chkconfig nexus3 on
2
3
# 2,配置运行用户。
这个地方可以使用 root 运行,不过官方文档里边也不建议使用 root 来运行,因此使用普通用户来运行。
[root@nexus ~]$useradd nexus
[root@nexus bin]$vim nexus.rc
run_as_user="nexus"
配置之后记得更改目录权限,否则下次启动会没有权限。
[root@nexus mnt]$chown -R nexus.nexus /mnt/nexus-3.12.1-01
[root@nexus mnt]$chown -R nexus.nexus /mnt/sonatype-work
2
3
4
5
6
7
8
9
# 3,配置 jdk。
如果这里不配置,一般会使用默认的 JAVA_HOME 的变量,如果系统中有多个,那么可以进行配置。
[root@nexus bin]$vim nexus
修改第14行:
INSTALL4J_JAVA_HOME_OVERRIDE=/usr/local/jdk1.8.0_144
2
3
4
# 4,修改端口。
一般使用默认的,如果需要修改,则更改/mnt/nexus-3.12.1-01/etc/nexus-default.properties
里边的配置。
这里不做修改了。
# 5,配置存储及日志位置。
[root@nexus bin]$vim /mnt/nexus-3.12.1-01/bin/nexus.vmoptions
一般都不做修改,使用默认即可,这里列出是为了了解这个点。
-XX:LogFile=../sonatype-work/nexus3/log/jvm.log
-Dkaraf.data=../sonatype-work/nexus3
-Djava.io.tmpdir=../sonatype-work/nexus3/tmp
2
3
4
5
6
7
配置完毕之后,重启一下服务。
# 6,启动之后,解决一个小问题。
注意左上角会有一个告警,这个告警的意思是系统默认的最大文件句柄太小了。
解决办法官网也已经给出了:解决文件句柄限制。 (opens new window)
因此我们照官方解决办法来做:
echo "nexus - nofile 65536" >> /etc/security/limits.conf
然后再次重启服务即可。
# 6,docker 方式安装。
最后介绍一些使用 docker 的方式如何安装。
如果想使用 docker 来启动,那么可以参考:官方镜像介绍。 (opens new window)
或用下边方式直接启动。
$ mkdir /mnt/nexus-data
$ docker run -d -p 8081:8081 --name nexus -v --ulimit nofile=65536:65536 /mnt/nexus-data:/nexus-data sonatype/nexus3
2
- 01
- 敬告本站拷贝者,立即停止侵权行为10-29