Nexus 搭建 Maven 私库
一、注册用户
账号:admin
密码:nexus213465
二、查看远程私库
- 进入设置项 的
Repository/repositories
目录
Proxy(代理)仓库:
- 代理仓库主要用于代理远程仓库,如中央Maven仓库或公共 npm 注册表。
- 当本地构建工具请求某个依赖项时,如果该依赖项不在本地缓存中,Nexus 将从配置的远程仓库获取,并将其存储在本地缓存中以供将来使用。
- 这种方式可以减少对外部网络的依赖,提高下载速度,并减轻公共仓库的负担。
- 代理仓库也可以设置为只读,防止直接向其中部署构件。
Group(组)仓库:
- 组仓库是多个仓库的集合视图,它可以包含其他组仓库、代理仓库或托管仓库。
- 它的作用是简化客户端配置,客户端只需要指向一个 URL 就可以访问到所有需要的组件。
- 当构建工具请求一个构件时,Nexus 会按照定义的顺序检查组内的每个仓库,直到找到所需的构件。
- 组仓库本身并不存储任何构件,它只是作为一个聚合点来提供对其他仓库中构件的访问。
Hosted(托管)仓库:
- 托管仓库用于存放内部构建的构件,也就是你自己的项目生成的二进制文件。
- 开发团队可以将他们的构建成果部署到托管仓库中,以便团队成员或其他系统能够重复利用这些构件。
- 托管仓库可以被配置成允许写入,所以可以直接向其中部署新的构件版本。
- 使用托管仓库有助于确保内部构件的安全性和可控性,同时也方便了内部构件的版本管理和分发。
Tip
proxy 代理仓库,主要是代理公共的远程仓库,比如aliyun的。
group 仓库组,主要是将仓库汇总,将自己的仓库,远程的仓库汇总起来,然后对外提供一个地址。将 proxy 和 hosted 统一
hosted 宿主仓库,理解为自己的仓库,主要用于公共的远程仓库没有的,或者自己的包。后续提供方,需要将jar推送到仓库的地址
三、创建 Maven仓库
3.1.创建 proxy 代理仓库
- 点击
Create repository
创建仓库
- 选择创建
maven2(proxy)
类型
- 初始化仓库名称,初始化需要代理的公共仓库地址
# name:
# 输入创建的仓库名称 my-proxy
# remote storage
# 输入公共的仓库地址:(可选)
# https://repo.maven.apache.org/maven2
# https://maven.aliyun.com/nexus/content/groups/public
阿里云仓库:
https://maven.aliyun.com
3.2 创建 hosted 宿主仓库
- 选择创建
maven2(hosted)
类型
- 输入仓库名称
输入名称 my-hosted
- 更改控制是否允许构件的部署和更新为 Allow redeploy
3.3 创建 group 仓库组
- 选择创建
maven2(group)
- 输入名称,更改 **version pollcy **为 Mixed
- 把宿主仓库(my-hosted)和代理仓库(my-proxy) 加入,宿主仓库在上面,优先从宿主仓库找,找不到再到代理仓库找
将自定义的仓库添加到 Members 中
完成三种类型的仓库创建
四、使用 Maven 仓库
4.1 上传公共包到私库
4.1.1 修改 IDEA 的 maven 的 setting.xml
- 找到
IDEA
的配置的maven的setting 文件
- 新增
<server>
的配置
<!-- nexus 的登录用户 -->
<server>
<id>private-maven</id>
<username>admin</username>
<password>nexus213465</password>
</server>
4.1.2 上传公共工具jar包
- 创建一个maven项目,编写工具类
- 修改
pom.xml
,打包上传正式版本的jar
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.common</groupId>
<artifactId>public-common</artifactId>
<!--指定版本为正式版 RELEASE-->
<version>1.0-RELEASE</version>
<!-- 打包类型-->
<packaging>jar</packaging>
<distributionManagement>
<repository>
<!--id 需要和maven的setting.xml的server的id保持一致, 才能获取到 nexus 的账号密码-->
<id>private-maven</id>
<name>person-public-hello</name>
<!--私服maven库的地址-->
<url>http://ip:16000/repository/my-hosted/</url>
</repository>
</distributionManagement>
</project>
- 进入 nexus 的自定义 hosted 仓库详情页,可以查看仓库的地址
- 使用maven插件
deploy
打包上传
- 选择 Browse -> 进入 my-hosted 详情
- 查看上传的公共包
4.2 从私库拉取公共包
- 修改 IDEA 的 maven 的 setting.xml 文件,新增 mirror镜像配置
<mirror>
<id>public</id>
<name>person-public</name>
<url>http://ip:16000/repository/my-public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
- 查看group 类型的仓库
- 在group 类型的仓库中,查看上传的自定义包的依赖
group 仓库包含了之前的 hosted 仓库和 proxy 的仓库,并且是对外开放的
- 在maven 项目中,引入自定义包的依赖