实战详解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拉取需要的软件包使用。

实战详解Ubuntu20.04部署私有仓库Nexus_第1张图片
Nexus应用中的架构如下图所示,开发侧向Nexus发起拉取软件包请求,如果Nexus仓库没有需要的软件包,
Nexus尝试从远程公共仓库拉取软件包(在maven-central中配置代理的远程仓库),
所以,Nexus私有仓库是一个软件包的管理器,有些私有的软件包可以在私有Nexus仓库发布并在公司内使用。
实战详解Ubuntu20.04部署私有仓库Nexus_第2张图片

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
按照各自平台选择:
实战详解Ubuntu20.04部署私有仓库Nexus_第3张图片

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

实战详解Ubuntu20.04部署私有仓库Nexus_第4张图片

解压完成后,会在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

实战详解Ubuntu20.04部署私有仓库Nexus_第5张图片

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

实战详解Ubuntu20.04部署私有仓库Nexus_第6张图片

  • 停止服务
/bin/nexus stop

在这里插入图片描述

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

4 进入Web页面

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

http://192.168.211.129:18081/

本机自测:

http://localhost:18081/

4.1 初始化

实战详解Ubuntu20.04部署私有仓库Nexus_第7张图片

4.2 首页

实战详解Ubuntu20.04部署私有仓库Nexus_第8张图片

4.3 用户名和密码

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

4.4 用户登录

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

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

实战详解Ubuntu20.04部署私有仓库Nexus_第9张图片

  • 登录成功
    实战详解Ubuntu20.04部署私有仓库Nexus_第10张图片

  • 修改密码
    修改为123456,自己做实验用,比较随意,如果是生产环境,请慎重配置。
    实战详解Ubuntu20.04部署私有仓库Nexus_第11张图片

  • 接入配置:匿名读取和下载仓库中的软件包,无需用户名和密码
    实战详解Ubuntu20.04部署私有仓库Nexus_第12张图片

  • 大功告成
    完成安装,并成功登录。
    实战详解Ubuntu20.04部署私有仓库Nexus_第13张图片

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

5 补充知识:仓库种类

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

实战详解Ubuntu20.04部署私有仓库Nexus_第14张图片

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

实战详解Ubuntu20.04部署私有仓库Nexus_第15张图片

7 小结

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

你可能感兴趣的:(#,Ubuntu,#,Maven实践记录,java,maven,nexus,ubuntu20)