Linux 下 Nexus 安装部署完整教程

兄弟们,今儿咱来盘一盘在 Linux 系统上咋安装部署 Nexus。Nexus 这玩意儿可是个超实用的开源仓库管理工具,在开发中管理 Maven、npm、Docker 镜像等各种组件都得靠它。不管你是搭建私有仓库,还是想优化项目的依赖管理,学会安装部署 Nexus 都是必备技能。话不多说,开整!

一、安装前的准备工作

(一)环境要求

  1. 操作系统:咱得用 Linux 系统,像 CentOS 7 + 或者 Ubuntu 18 + 都成。这俩系统在服务器领域用得贼多,稳定性和兼容性都不错,很适合跑 Nexus。

  2. Java 环境:Nexus 是基于 Java 开发的,所以得先装 Java 环境。注意,Nexus 2 版本用 JDK 7 就行,要是咱用 Nexus 3,那就得安排 JDK 8 及以上版本了。不清楚咋装 JDK 的兄弟,网上教程一搜一大把,跟着操作就行。

  3. 内存和 CPU:Nexus 运行起来还是挺耗资源的,官方建议服务器至少得有 4 个 CPU 核心,内存最好 8GB 起步。要是资源不够,Nexus 跑起来可能就不太顺畅,甚至可能报错。咱可以用cat /proc/cpuinfo命令瞅瞅 CPU 核心数,用free -h命令看看内存情况。

  4. 网络:确保服务器的防火墙开放了 Nexus 要用的端口,默认是 8081 端口。要是端口被防火墙拦住了,咱在浏览器里就访问不了 Nexus 的 Web 界面。

(二)下载 Nexus 安装包

  1. 官网下载:最正规的下载方式肯定是去 Nexus 官网啦,地址是Download Archives - Repository Manager 3 。在这儿能找到各个版本的资源,要注意的是,官网是外网,有时候不翻墙可能下载不了,这就有点尴尬了。

  2. 网盘下载:要是官网下不了,咱还有亲民的办法,就是去网盘找大佬分享的资源。比如百度云盘,就有人分享了 Nexus 的安装包,像文件名nexus - 3.25.1 - 04 - unix.tar.gz,文件大小 156M 左右,链接:https://pan.baidu.com/s/1KzzpfA67En_nb59KQ7efEw,提取码:0000 。不过这种方式资源有限,可能选不了自己想要的版本。在 CSDN 上也有不少大佬上传了相关资源,有积分的兄弟也可以去那儿下载。

二、安装 Nexus

(一)上传安装包到服务器

咱把下载好的 Nexus 压缩包通过rz命令或者其他文件传输工具,上传到 Linux 服务器上。比如,咱可以先在服务器上创建个/home/soft/nexus目录,专门用来放 Nexus 相关文件,然后把压缩包传进去。

(二)解压安装包

上传完就该解压了,进入压缩包所在目录,执行解压命令:

1
tar -zxvf nexus - 3.25.1 - 04 - unix.tar.gz

解压完会得到两个文件夹:nexus - 3.25.1 - 04sonatype - worknexus - 3.25.1 - 04这个文件夹是用来实现 Nexus 功能的,里面有各种执行文件和配置文件;sonatype - work文件夹则是用来存储数据的,像仓库里存的各种组件、配置信息啥的都在这儿。

(三)启动 Nexus

  1. start 命令启动(后台进程形式):进入/home/soft/nexus/nexus-3.25.1-04/bin目录,能看到nexus文件,这就是 Nexus 服务的脚本文件。咱用start命令以后台进程形式启动 Nexus,不占用当前命令终端窗口,命令如下:
1
./nexus start

启动可能得等一会儿,咱可以用浏览器访问linux服务器ip:8081来验证服务启动没。要是启动成功,就能看到 Nexus 的登录页面了。

  1. run 命令启动(当前进程形式):还是在/home/soft/nexus/nexus-3.25.1-04/bin目录下,用run命令以当前进程形式启动 Nexus,命令如下:
1
./nexus run

这种方式启动后,日志会直接打印在控制台,等看到类似Started Sonatype Nexus的信息,就说明启动成功了。不过这种方式会占用当前命令终端窗口,不太方便,所以推荐用start命令启动。

(四)开放端口

Nexus 默认用 8081 端口,咱得把这个端口在服务器的防火墙里开放了,不然外部访问不了。以 CentOS 系统为例,操作如下:

  1. 先查看所有开放的端口号,首次执行这操作得输入当前用户密码:
1
sudo firewall - cmd -- zone = public -- list - ports
  1. 开放 8081 端口:
1
sudo firewall - cmd -- zone = public -- add - port = 8081/tcp -- permanent
  1. 重启防火墙服务,让配置生效:
1
sudo firewall - cmd -- reload

再查看开放端口号,能看到 8081 端口已经在列表里了,这就说明开放成功。

三、登录并初始化 Nexus

(一)登录

在浏览器地址栏输入http://linux服务器ip:8081,就能打开 Nexus 的 Web 端首页。有些 Nexus 版本有默认账号admin和密码admin123,要是登录失败,咱就得去sonatype - work/nexus3目录下的admin.password文件里查看初始化密码。在 Linux 命令终端执行:

1
2
3
4
5
# 进入admin.password文件所在目录
cd /home/soft/nexus/sonatype - work/nexus3

# 查看admin.password文件文本内容
cat admin.password

文件第一行显示的就是密码,用这个密码登录就行。

(二)重置密码

登录成功后,会提示咱重置密码,按要求设置个新密码,得记好,以后登录就用新密码了。

(三)配置匿名访问(可选)

要是想让没登录的用户也能访问 Nexus 仓库里的一些公开资源,可以配置匿名访问。在 Nexus 的 Web 界面里,找到相关配置项,一般在Security -> Anonymous里,把Enable Anonymous Access勾选上就行。不过这操作得谨慎,要是仓库里有敏感数据,可别开匿名访问,不然数据就泄露了。

四、Nexus 常见配置与使用

(一)修改 Nexus 端口

要是 8081 端口被占用,咱可以改 Nexus 的端口。在sonatype - work/nexus3/etc目录下找到nexus.properties配置文件,把application - port配置项改成咱想要的端口号,比如application - port = 8082 ,保存文件,然后重启 Nexus 服务,新端口就生效了。

(二)创建仓库

Nexus 里仓库类型挺多,像代理仓库(proxy)、宿主仓库(hosted)、仓库组(group)啥的。咱一般开发常用的是 Maven 仓库,创建步骤如下:

  1. 在 Nexus 的 Web 界面里,点击主页上面的小螺丝图标,然后选择Repositories进入仓库管理列表。

  2. 点击Create repository按钮创建仓库,选择仓库类型的时候选maven2

  3. 创建代理仓库(proxy):比如咱想用阿里的中央仓库做代理,在配置页面的Remote Storage Location属性里填https://maven.aliyun.com/repository/central ,其他配置项按默认就行,填好后点击Create按钮创建。

  4. 创建宿主仓库(hosted):可以创建releasessnapshot类型的仓库。在配置页面,Repository Policy属性选Release或者SnapshotAllow redeploy属性一般默认勾选,然后点击Create按钮创建。

  5. 创建仓库组(group):仓库组就是把多个仓库组合在一起对外提供服务。在配置页面,把之前创建的代理仓库和宿主仓库添加到Members列表里,然后点击Create按钮创建。

(三)配置 Maven 使用 Nexus 仓库

  1. 找到 Maven 的settings.xml文件,一般在~/.m2/目录下。要是没有这个文件,自己创建一个。

  2. 编辑settings.xml文件,添加如下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://linux服务器ip:8081/repository/maven - public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://linux服务器ip:8081/repository/maven - public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>

这里的http://linux服务器ip:8081/repository/maven - public/得改成你自己 Nexus 服务器的地址和仓库组路径。改好保存后,Maven 就会从你配置的 Nexus 仓库里下载依赖了。

五、常见问题及解决办法

(一)启动报错

  1. Java 环境问题:要是启动 Nexus 报错说找不到 Java 环境,或者提示 Java 版本不兼容,那肯定得检查下 Java 环境配置对不对。看看JAVA_HOME环境变量设置了没,值是不是指向正确的 JDK 安装目录。

  2. 权限问题:用root用户启动 Nexus 有时候会报错,提示Detected execution as “root” user. This is NOT recommended! 。解决办法是找到bin目录下的nexus文件,用vi编辑,把run_as_root = true改成run_as_root = false ,然后再启动就行。

(二)无法访问 Web 界面

  1. 端口问题:要是在浏览器里访问http://linux服务器ip:8081打不开页面,先检查下服务器防火墙是不是开放了 8081 端口,用telnet linux服务器ip 8081命令测试下端口通不通。要是端口被占用,就得改 Nexus 的端口或者把占用端口的进程干掉。

  2. 网络问题:检查下服务器网络是不是正常,能不能 ping 通外网。要是网络有问题,Nexus 可能没法从远程仓库拉取数据,也会影响 Web 界面访问。

(三)依赖下载失败

  1. 仓库配置问题:要是 Maven 从 Nexus 仓库下载依赖失败,先检查下settings.xml文件里 Nexus 仓库的配置对不对,地址、端口啥的有没有写错。再看看 Nexus 里对应的仓库是不是正常,有没有配置好远程仓库地址。

  2. 网络问题:和上面一样,网络不稳定或者被限制,Nexus 就没法从远程仓库拉取依赖,自然下载就失败了。这种情况就得排查网络问题,或者联系网络管理员解决。

六、总结

兄弟们,到这儿咱就把 Linux 下 Nexus 的安装部署、常见配置和使用,以及常见问题解决办法都唠完了。

Nexus 这工具在项目开发里用处可大了,能帮咱高效管理依赖,提升开发效率。

学会了安装部署,后续还得琢磨咋优化仓库配置、提升性能啥的,这都是进阶操作了。

要是在安装部署过程中遇到啥问题,别慌,按照教程一步步排查,或者在评论区留言,咱一起琢磨琢磨。

祝大家都能顺顺利利把 Nexus 跑起来!