使用Nexus搭建局域网内的Maven构件仓库

Nexus 是Maven仓库管理器,管理开发所需要的构件。如果每次都是从 Apache 提供的 Maven中央仓库去下载所需要的构件,可能会出现速度慢或无法访问的问题。在本地架设一个Maven仓库服务器,再代理远程仓库的同时维护本地仓库,以节省带宽和时间,那么Nexus可以满足这样的需求。

Nexus Repository Manager 仓库管理分为专业版和oss版,oss版是免费的,专业版是收费的。

Nexus 的功能非常强大。Nexus 2.x 和 Nexus 3.x 的差别也是非常大;Nexus 3.x 版本更增加了对 Docker、NuGet、npm、Bower的支持。全面升级了页面,增加管理接口以自动管理任务,性能和用户体验也都有所改善。

1. 安装Nexus

根据操作系统类型选择具体的安装包。官网几乎下载不动,可以在网上搜索网友提供的网盘链接,请自行使用Baidu。

下载下来是一个zip压缩包,直接解压即可。这里解压到如下目录

 D:\teamworks\nexus\nexus3

 Nexus的主目录分为两个,分别是安装目录和数据目录

 安装目录

 D:\teamworks\nexus\nexus3\nexus-3.30.0-01

数据目录

 D:\teamworks\nexus\nexus3\sonatype-work\nexus3

2. 启动Nexus

 直接双击 bin 目录下的 nexus.exe 文件是无法启动 Nexus的。需要打开一个 cmd 命令行窗口,然后进入该目录,执行命令

nexus.exe /run

  出现上图标红框里的提示说明启动成功,可以访问如下地址验证是否启动成功。

 http://localhost:8081  

 第一次登录系统时,管理员名称为admin,密码不再是Nexus2时默认的admin123了,而是一个安全性更好的密码,在登录时会提示密码保存的位置。根据提示找到

管理员 admin 的密码,当前安装过程中密码文件的位置为:

D:\teamworks\nexus\nexus3\sonatype-work\nexus3\admin.password

3. 将Nexus安装为Windows服务 

首先需要以管理员身份打开命令行窗口,输入命令: nexus /install nexusTest。即可在系统中注册一个名为nexusTest的服务,这样当我们的电脑在开机时,nexus服务也会自动运行。

这里多说一句:如果我们想在系统中,停止该服务,可以使用: nexus /stop nexusTest;

如果想删除该服务,可以使用:nexus /uninstall nexusTest。

在安装时介绍的启动nexus的方法,使用命令行:nexus /run。它与使用 nexus /install nexusTest最大区别在于,当我们关闭命令行界面的时候,该服务也就停止了。而使用 nexus /install nexusTest命令开启的nexus服务之后,会一直开启,直到我们使用命令进行卸载或者关闭。

在运行窗口中,输入services.msc进入到查看系统中是存在nexusTest服务。

 

4. Nexus说明

4.1 仓库的类型说明

 Nexus 可以配置3种类型的仓库,分别是proxyhostedgroup

 Proxy 远程仓库的代理:比如说在Nexus中配置了central repository的proxy,当用户向这个proxy请求一个构件时,这个proxy就会先在本地查找,如果找不到的话,再去远程仓库下载,返回给用户。相当于一个中转的作用。

 Hosted 宿主仓库:用户可以把一些自己的构件,deploy 到 hosted 中。 

Group 仓库组:在 Maven 里没有这个概念,是 Nexus 特有;目的是将上述多个仓库聚合,对用户暴露统一的地址,这样用户就不需要配置多个地址,只要统一配置 Group 地址就OK了。

4.2 仓库说明

 Central Repository 的 proxy 可能就是最关键的一个配置,因为绝大部分构件都是通过这个 proxy 得到的。在安装完 Nexus,这个 proxy 是预置的,代理了远程服务https://repo1.maven.org/maven2/,网上有一些其他公开的Maven仓库,可以用同样的办法,在Nexus中配置Proxy (如下图maven-public)

 Hosted Repository 一般会配置3个,分别是3rd party,snapshots,releases,分别用来保存第三方的 jar,公司内部 jar 包的快照,公司内部的发布版 (如 maven-releases,maven-snapshots)

Group Repository 是一个虚拟的仓库,通过对实体仓库聚合对外暴露统一的地址 (如maven-public)

4.3 Maven,yum,apt,docker,npm私库的国内源

Maven私库:

https://maven.aliyun.com/repository/public
https://maven.aliyun.com/repository/google
https://maven.aliyun.com/repository/spring
https://maven.aliyun.com/repository/spring-plugin

Yum私库:

新建代理仓库,在nexus管理界面上新建代理,测试过的代理如下:
Proxy Remote storage:
docker-ce —> http://mirrors.aliyun.com/docker-ce/linux/centos/
kubernetes —> https://mirrors.aliyun.com/kubernetes/
centos —> https://mirrors.aliyun.com/centos
epel -----> http://download.fedoraproject.org/
docker --googlecontainer—>>> https://registry.aliyuncs.com/
nginx -----> http://nginx.org/
enterprise -----> http://rpms.remirepo.net/enterprise
mysql ------> http://repo.mysql.com/
google-chrome ------> http://dl.google.com/
postgresql -------> https://download.postgresql.org/

apt-proxy

Name: apt-proxy
Distribution: bionic
Remote Stroage: https://mirrors.aliyun.com/ubuntu/

docker私库设置

##新建docker_google_containers
docker --googlecontainer—>>> https://registry.aliyuncs.com
remote storeage: https://registry.aliyuncs.com/
customer index: https://registry-1.docker.io
##Realms—>>> Docker Bearer Token Realm移到Active然后保存

##官网docker_hub的设置记录如下:

#####如: docker_hub私库,6000端口
Repositories----->>>>Create repository---->>>>选择docker(proxy)
Name:docker_hub
Http:打勾,设置6000端口
Allow anonymous docker pull: 打勾
Enable Docker V1 API:打勾
Remote storage: https://uyah70su.mirror.aliyuncs.com
docker index: Use Docker Hub
Storage:default
然后保存。

npm npm-repo-proxy

Name: npm-repo-proxy
Remote storage: https://registry.npmjs.org

 参考文章

https://blog.csdn.net/Chaolei3/article/details/113044684 使用nexus3.x(一)——安装并启动Nexus 3.x

https://baijiahao.baidu.com/s?id=1728617002649842973  Nexus 私有制品库搭建

https://blog.csdn.net/jxlhljh/article/details/118296204 nexus3私库环境搭建(maven,yum,apt,nodejs)

posted @ 2022-10-02 14:47  培轩  阅读(942)  评论(0编辑  收藏  举报