Nexus3 OSS环境搭建以及在日常工作中的用途

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 本文介绍的Nexus不是谷歌的一个手机品牌哈,而是一个非常强大的仓库管理平台。支持常见的Docker、Maven、npm、PyPI等仓库的管理。

Nexus是什么



本文介绍的Nexus不是谷歌的一个手机品牌哈,而是一个非常强大的仓库管理平台。支持常见的Docker、Maven、npm、PyPI等仓库的管理。


微信图片_20220113205349.png


Nexus是一个开源的软件,有Nexus OSS版本和Pro的版本。



Nexus在我们的日常工作中有接触到吗?



在我们的日常工作中,我们是否经常会被已下问题困扰:

1、java开发的项目,使用maven工程进行管理时,编译项目下载jar包时非常缓慢

2、编译前端vue项目,需要使用npm命令下载依赖的插件非常慢

3、使用docker的时候,pull镜像非常慢

4、公司对XXX网络做了限制,可能无法访问到某网络,或者团队成员都要从外网下载某个文件,下载非常慢

......

下面,通过一张图片的对比来介绍一下使用Nexus的好处:



微信图片_20220113205352.png从左边的图片可以看出,开发人员使用传统的方式从官网去下载各种插件,这个过程容易受到网络的影响以及公司网络策略和安全的限制。


从右边的图可以看出,如果在公司内部搭建一个自己的Nexus仓库管理平台的话,那么开发人员只需从内部的仓库中去下载所需文件,下载速度会加快 ,只需在服务器上配置代理仓库到官方仓库即可。


在日常工作中,我们经常会使用类似下面的命令去安装一些所需的插件/软件:

npm install --registry=https://registry.npm.taobao.org

实际上,这些就是国内的一些第三方的镜像仓库。仓库管理目前用的多的应该是Nexus和Artifactory,至于2个工具之间的优势和差异对比 ,感兴趣的可以自己去了解一下。



Nexus OSS免费版的环境搭建



1、安装包下载

官网下载地址:https://www.sonatype.com/nexus/repository-oss/download

百度网盘下载好的地址:

链接:https://pan.baidu.com/s/1grqqQFHCpheFrH8y6QQVmA

提取码:1234

2、linux环境下的部署(以nexus3.27.0-03为例)

将安装包传到服务器某个目录,然后使用tar命令去解压文件

进入到安装目录的bin目录下,执行./nexus start 即可启动nexus

常用命令如下:

./nexus start : 后台启动,类似于nohup

./nexus run : 前台启动,能看到实时刷新的日志信息,关掉窗口后就停止了

./nexus stop:停止服务

注意事项:

a、目前的nexus os3.xxx的版本,需要依赖jdk环境,且必须是jdk1.8

b、如果服务器安装的jdk配置的环境变量不是jdk1.8,在启动的时候会报错:


No suitable Java Virtual Machine could be found on your system.

The version of the JVM must be 1.8.

Please define INSTALL4J_JAVA_HOME to point to a suitable JVM.


解决方法:

修改nexus的bin目录下的nexus文件,将jdk1.8的安装目录配置到INSTALL4J_JAVA_HOME中,无需配置到系统环境变量中去:(之前试过jdk1.8.0_251的版本不行 ,换成jdk1.8.0_261的版本才可以)


微信图片_20220113205354.png


微信图片_20220113205357.png


c、在安装目录下的etc/nexus-default.properties文件中,可以自定义端口,默认是8081端口。


微信图片_20220113205359.png


3、windows环境下的部署

将下载下来的压缩包解压,进入到bin目录下后,在当前目录打开cmd窗口,输入nexus /run 即可启动。

如果启动过程中报下面的错误:

java.lang.NumberFormatException: null

安装目录不能包含中文

微信图片_20220113205401.png


将安装目录迁移到不包含中文的路径之后,重新执行命令即可。如果还报错的话,就检查一下jdk的版本,目前在windows上,jdk的版本是11,也可以启动成功。端口号一样的在etc目录下的etc/nexus-default.properties文件中更改。

4、访问nexus环境

在浏览器输入ip+端口号就可以访问。


微信图片_20220113205403.png


不管是在linux还是windows上搭建的环境,初始的admin帐号的密码都存储在nexus同层级目录下的sonatype-work文件夹下面的admin.password文件中,登录后会提示你修改默认密码,修改后,该保存初始密码的文件会被清除掉。


微信图片_20220113205406.png


                                 Nexus Repository仓库类型介绍


启动nexus服务后,可能要稍微等一会,页面才能正常访问,因为在启动的时候,后台需要初始化一些数据之类的,同时会创建几个maven和nuget默认的仓库。

不管是创建maven还是npm的仓库,在nexus中,仓库主要有proxy,hosted以及group 这3种类型,下面分别介绍一下这3种类型的区别:

  • hosted,本地代理仓库,通常用来存储自己编写的一些插件和包到这一类型的仓库,可以push和pull。
  • proxy,代理的远程仓库,它们被用来代理远程的公共仓库,如maven中央仓库,只能pull,proxy仓库可以用来加速。
  • group,仓库组,用来合并多个hosted/proxy仓库,通常我们配置maven依赖仓库组,只能pull。

演示如何通过自己搭建的nexus环境下载jar包编译maven工程代码

登录nexus环境后,在nexus网站找到group类型的maven仓库:maven-public,进入设置页面后,查看该仓库的url地址:



微信图片_20220113205410.png


然后将地址填入maven的配置文件中即可(maven安装目录下conf/settings.xml)

maven的settings.xml文件中,在mirrors下面添加一个镜像:

 <mirror>
    <id>maven-public</id>
    <name>maven-public</name>
    <url>http://192.168.64.128:8000/repository/maven-public/</url>
    <mirrorOf>*</mirrorOf>
  </mirror>     

然后找一个maven工程用命令编译,可以看一下输出日志:


微信图片_20220113205412.png


从日志可以看出,已经从我们自己搭建的仓库中开始下载插件了。

同时,在仓库中也可以看到有我们下载的一些包:

ps:只有本地没有的包,才会从私服上去下载


微信图片_20220113205415.png


好了,到这就已经介绍完了Nexus是如何搭建仓库管理平台的,你get到了吗?有收获的话,帮忙分享给身边的其他小伙伴呗

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
6月前
|
存储 安全 API
阿里云oss存储简介和如何使用
阿里云OSS存储服务是一种安全、稳定、高效的云存储服务,适用于各种规模的应用和业务场景。它具备出色的持久性和可用性,可以为用户提供高可靠、低成本的存储解决方案。阿里云OSS存储具有广泛的应用场景
1558 0
|
3月前
|
存储 Java 对象存储
springboot配置阿里云OSS存储实现文件上传下载功能
【1月更文挑战第1天】springboot配置阿里云OSS存储实现文件上传下载功能
532 2
|
27天前
|
Java Devops Maven
云效常见问题之maven库代理更换调改如何解决
云效(CloudEfficiency)是阿里云提供的一套软件研发效能平台,旨在通过工程效能、项目管理、质量保障等工具与服务,帮助企业提高软件研发的效率和质量。本合集是云效使用中可能遇到的一些常见问题及其答案的汇总。
20 2
|
3月前
|
存储 对象存储 Python
Python中使用阿里云OSS存储实现文件上传和下载功能
Python中使用阿里云OSS存储实现文件上传和下载功能
417 2
|
5月前
|
存储 对象存储
云效上传源代码到OSS的步骤如下
云效上传源代码到OSS的步骤如下
54 2
|
存储 Go API
防微杜渐,未雨绸缪,百度网盘(百度云盘)接口API自动化备份上传以及开源发布,基于Golang1.18
奉行长期主义的开发者都有一个共识:对于服务器来说,数据备份非常重要,因为服务器上的数据通常是无价的,如果丢失了这些数据,可能会导致严重的后果,伴随云时代的发展,备份技术也让千行百业看到了其“云基因”的成长与进化,即基于云存储的云备份。
防微杜渐,未雨绸缪,百度网盘(百度云盘)接口API自动化备份上传以及开源发布,基于Golang1.18
|
Linux 对象存储 数据安全/隐私保护
OSS图形化管理工具使用
OSS图形化管理工具使用
556 0
OSS图形化管理工具使用