实战详解Ubuntu20.04部署私有仓库Nexus

1 缘起

为了完善开发技能,以实验(实践)的方式,
使用Maven部署(deploy)jar包到私仓,
因为,公司的私仓我没有用户名和密码,无法登录,
所以,准备自己在本地Ubuntu20.04构建私仓,使用Nexus Repository(开源版:OSS 3.40.1),
第一步是构建私仓,保证有实验环境,
Nexus环境搭建分享如下,帮助有需要(爱折腾)的开发者构建自己的实验环境。
由于Nexus Repository OSS 3.40.1无法通过官网下载,特,利用CSDN的文件下载渠道,
我设定的积分为0,可以免费下载,见后文链接。

2 简介

Nexus的仓储提供二进制仓库管理,即存储开箱即用的软件包。
官网的Nexus仓库描述如下图:
在这里插入图片描述

Nexus repository在开发中的位置如下图所示,
由图可知,开发者开发完成后(Python、C、Go、Java等),
构建项目,
将项目上传到Nexus Repository,此时开发者完成软件开发(若无Bug以及升级需求)。
之后,使用者即可从Nexus Repository拉取需要的软件包使用。

在这里插入图片描述
Nexus应用中的架构如下图所示,开发侧向Nexus发起拉取软件包请求,如果Nexus仓库没有需要的软件包,
Nexus尝试从远程公共仓库拉取软件包(在maven-central中配置代理的远程仓库),
所以,Nexus私有仓库是一个软件包的管理器,有些私有的软件包可以在私有Nexus仓库发布并在公司内使用。
在这里插入图片描述

3 部署

3.1 环境准备

  • 部署JDK8:
sudo apt install openjdk-8-jdk

路径:/usr/lib/jvm/java-8-openjdk-amd64

  • Maven:
sudo apt install maven

3.2 下载Nexus

官网传送门:https://help.sonatype.com/repomanager3/product-information/download

注意:

下载不了的,从这个连接免费下载:https://download.csdn.net/download/Xin_101/86247134
按照各自平台选择:
在这里插入图片描述

3.3 解压Nexus

新建文件夹:nexus-3.40.1,
将文件nexus-3.40.1-01-unix.tar.gz解压到nexus-3.40.1,
命令如下:

tar -zxvf nexus-3.40.1-01-unix.tar.gz -C /home/xindaqi/software/install/nexus-3.40.1

在这里插入图片描述

解压完成后,会在nexus-3.40.1文件夹生成两个目录:
nexus-3.40.1-01和sonatype-work,
通过虚拟机配置文件:/home/xindaqi/software/install/nexus-3.40.1/nexus-3.40.1-01/bin/nexus.vmoptions
可知,sonatype-work是nexus的运行时数据(如日志,pid等)存储目录。
在这里插入图片描述

3.4 修改Neuxs配置

为避免与其他服务端口冲突,特修改nexus的运行端口为:18081,
配置文件:/home/xindaqi/software/install/nexus-3.40.1/nexus-3.40.1-01/etc/nexus-default.properties

application-port=18081
application-host=0.0.0.0
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
nexus-context-path=/

# Nexus section
nexus-edition=nexus-pro-edition
nexus-features=\
 nexus-pro-feature

nexus.hazelcast.discovery.isEnabled=true

在这里插入图片描述

3.5 启停Nexus及相关命令

  • 后台(守护进程)启动
    进入nexus文件夹:/home/xindaqi/software/install/nexus-3.40.1/nexus-3.40.1-01
./bin/nexus start

在这里插入图片描述

  • 前台启动
    进入nexus文件夹:/home/xindaqi/software/install/nexus-3.40.1/nexus-3.40.1-01
./bin/nexus run

在这里插入图片描述

  • 停止服务
/bin/nexus stop

在这里插入图片描述

序号命令描述
1run前台启动Nexus服务
2start后台(守护进程)启动Nexus服务
3restart重启Nexus服务
4stop停止Nexus服务
5force-reload重新加载配置文件
6status查看Nexus状态

4 进入Web页面

使用IP和PORT,前提是端口开放,
如果PORT没有开放,配置防火墙,开放18081端口。

http://192.168.211.129:18081/

本机自测:

http://localhost:18081/

4.1 初始化

在这里插入图片描述

4.2 首页

在这里插入图片描述

4.3 用户名和密码

Nexus成功启动并成功进入Web界面后,
在路径中/home/xindaqi/software/install/nexus-3.40.1/sonatype-work/nexus3/admin.password
会生成admin初始密码。
在这里插入图片描述

4.4 用户登录

打开上面admin.password文件,获取初始密码,
进行登录,

序号属性描述
1username用户名,管理员用户名:admin
2password密码,初始密码在文件admin.password

在这里插入图片描述

  • 登录成功
    在这里插入图片描述

  • 修改密码
    修改为123456,自己做实验用,比较随意,如果是生产环境,请慎重配置。
    在这里插入图片描述

  • 接入配置:匿名读取和下载仓库中的软件包,无需用户名和密码
    在这里插入图片描述

  • 大功告成
    完成安装,并成功登录。
    在这里插入图片描述

接下来就可以部署jar包测试,参见实战详解Maven部署(deploy)jar到私有仓库Nexus及如何引入私仓jar包

5 补充知识:仓库种类

序号仓库描述
1maven-central中央仓库,默认从https://repo1.maven.org/maven2/拉取软件包,可配置
2maven-public公共仓库,存储发行版和快照版的软件包,即发行版和快照版的软件包都会在public中
3maven-releases发行版仓库,软件包稳定后,发布到该仓库,团队内使用
4maven-snapshots快照版本仓库,用于测试软件,发布到线上

6 Q&A

启动异常:存储空间不足

com.orientechnologies.orient.core.exception.OLowDiskSpaceException: Error occurred while executing a write operation to database ‘OSystem’ due to limited free space on the disk (3436 MB). The database is now working in read-only mode. Please close the database (or stop OrientDB), make room on your hard drive and then reopen the database. The minimal required space is 4096 MB. Required space is now set to 4096MB (you can change it by setting parameter storage.diskCache.diskFreeSpaceLimit)

在这里插入图片描述

  • 方案
    根据上述提示,降低文件存储空间上限,如调整为2048MB,让其低于可用的空间,如3436MB。
    通过参数:storage.diskCache.diskFreeSpaceLimit配置该属性值。
    修改文件:/home/xindaqi/software/install/nexus-3.40.1/nexus-3.40.1-01/bin/nexus.vmoptions

在这里插入图片描述

7 小结

核心:
(1)Nexus的仓储提供二进制仓库管理,即存储开箱即用的软件包,Nexus Repository官网
(2)安装Nexus Repository,初始化密码在:nexus路径/sonatype-work/nexus3/admin.password,登录时直接使用,并且系统会让用户修改密码;
(3)启动Nexus时,如果系统的文件空间不足4096MB,会启动失败,此时,可以增加硬盘容量或者调整存储上限:storage.diskCache.diskFreeSpaceLimit;
(4)实际应用中,私有Nexus是软件包的管理器,可以发布公司内部私有使用的软件包,如果需要使用公开的共用包,则配置maven-central代理公开的公共仓库,如阿里仓库。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天然玩家

坚持才能做到极致

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值