当前位置: 代码迷 >> 综合 >> Nexus 私服 学习笔记
  详细解决方案

Nexus 私服 学习笔记

热度:19   发布时间:2023-11-19 23:43:37.0

Nexus介绍
  Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。

1 . 私服简介

  私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。

 我们可以使用专门的 Maven 仓库管理软件来搭建私服,比如:Apache Archiva,Artifactory,Sonatype Nexus。这里我们使用 Sonatype Nexus。
 

这里写图片描述

2 . 安装Nexus

 Nexus 专业版是需要付费的,这里我们下载开源版 Nexus OSS。Nexus 提供两种安装包,一种是包含 Jetty 容器的 bundle 包,另一种是不包含容器的 war 包。下载地址:http://www.sonatype.org/nexus/go。


安装环境:操作系统:Linxu(CentOS)
将压缩包解压到/usr/local/nexus目录下,nexus里面有2个文件夹,第一个文件夹是核心文件,第二个文件夹用来存储下载下来的jar:
这里写图片描述

修改端口,进入nexus/nexubs-2.13.0-01/conf目录下,编辑nexus.properties文件,命令:vim nexus.properties

这里写图片描述

启动nexus,进入nexus/nexubs-2.13.0-01/bin目录,

这里写图片描述

运行命令:./nexus //可以查看有那些运行命令
运行命令:./nexus start //启动nexus

这里写图片描述

根据错误提示:修改运行的用户,修改运行文件 nexus,命令:vim nexus,将RUN_AS_USER修改为root;

这里写图片描述

保存之后,再次启动nexus,运行命令:./nexus start

查看nexus 控制台,命令:./nexus console
这里写图片描述

在浏览器进行访问。地址:http://ip地址:端口(刚修改的9903)/nexus

这里写图片描述

点击右上角 Log In,使用用户名:admin ,密码:admin123 登录,可使用更多功能:

这里写图片描述

点击左侧 Repositories 链接,查看 Nexus 内置的仓库:
这里写图片描述

Nexus 的仓库分为这么几类:

  • hosted 宿主仓库:主要用于部署无法从公共仓库获取的构件(如 oracle 的 JDBC 驱动)以及自己或第三方的项目构件;
  • proxy 代理仓库:代理公共的远程仓库; virtual 虚拟仓库:用于适配 Maven 1;
  • group 仓库组:Nexus 通过仓库组的概念统一管理多个仓库,这样我们在项目中直接请求仓库组即可请求到仓库组管理的多个仓库。

这里写图片描述

4 . 添加代理仓库

以 Sonatype 为例,添加一个代理仓库,用于代理 Sonatype 的公共远程仓库。点击菜单 Add - Proxy Repository :

这里写图片描述

填写Repository ID - sonatype;Repository Name - Sonatype Repository;
Remote Storage Location - http://repository.sonatype.org/content/groups/public/ ,save 保存:

这里写图片描述

将添加的 Sonatype 代理仓库加入 Public Repositories 仓库组。选中 Public Repositories,在 Configuration 选项卡中,将 Sonatype Repository 从右侧 Available Repositories 移到左侧 Ordered Group Repositories,save 保存:

这里写图片描述

5 . 搜索构件

为了更好的使用 Nexus 的搜索,我们可以设置所有 proxy 仓库的 Download Remote Indexes 为 true,即允许下载远程仓库索引。

这里写图片描述

索引下载成功之后,在 Browse Index 选项卡下,可以浏览到所有已被索引的构件信息,包括坐标、格式、Maven 依赖的 xml 代码:
这里写图片描述
有了索引,我们就可以搜索了:

这里写图片描述
6 . 配置Maven使用私服

私服搭建成功,我们就可以配置 Maven 使用私服,以后下载构件、部署构件,都通过私服来管理。

在 settings.xml 文件中,为所有仓库配置一个镜像仓库,镜像仓库的地址即私服的地址(这儿我们使用私服公共仓库组 Public Repositories 的地址):
这里写图片描述

 <mirrors><mirror><id>central</id><mirrorOf>*</mirrorOf> <!-- * 表示让所有仓库使用该镜像--> <name>central-mirror</name> <url>http://localhost:8081/nexus/content/groups/public/</url></mirror> </mirrors>

参考资料:

博客

  相关解决方案