什么是 Nexus3 为什么需要用 Nexus3
Nexus3 是一个依赖管理工具,你可以在这里管理Npm 、Maven 等构建性依赖
- 作为一名开发,每次构建我都需要 maven 或者 npm 中央仓库获取依赖,网络不好的情况下载时间与之倍增,但如果依赖的源地址是在本地,那后续构建依赖就不再需要从 npm 官方下载,而是利用 Nexus3 下载好的依赖快速拉取,极大减少时间成本,如果一个项目有多个成员开发,所带来的效益也越大。
搭建 Nexus3
注: 此文搭建方法的前提是安装了Docker 安装使用教程
运行docker -v查看是否安装
# 下载 nexus3 镜像最新版本
docker pull sonatype/nexus3
# 启动 nexus3(自动启动、挂载数据目录)
docker run --restart always --name nexus3 \
-v /usr/local/docker/nexus3/data:/nexus-data \
-p 10808:8081 \
-e TZ=Asia/Shanghai \
-d sonatype/nexus3
# 默认账号密码 admin admin123, 查看admin密码
docker exec nexus3 cat /nexus-data/admin.password
使用 Nexus3 搭建 Maven 仓库(其它仓库相似)
- 进入 Nexus3 主页后,右上角登录,随后点击设置图标进入后台管理,选择左侧菜单进入存储设置,创建一个新的存储,尽量不改动存储位置
- 接下来创建仓库,选择左侧菜单进入仓库设置,创建一个新仓库,找到 Maven2,先创建 proxy,这个是用来存放从代理地址下载下来的依赖包。在这里我们最好创建两个 proxy,一个是国内阿里仓库,一个是 maven repo,防止有些包阿里仓库暂时没有,创建方法一样。
3. 我们再创建 hosted, 这个用来存储我们本地上传的包,按照规范理分为(release 和 snapshots),这里我们只创建 release 的本地库,其余请自行了解规范知识。
- 再创建 group,这个就相当于我们获取依赖的入口了,在这里我们可以设置依赖包获取的顺序。
如此一来,我们就把本地的 maven仓库创建好了。(自己试试搭建一下 Npm 仓库吧)
仓库本地配置
这里只介绍两种配置 maven 和 npm
1.1 maven 配置文件 setting.xml
<!-- 如若不嫌弃可直接覆盖使用😁 -->
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 依赖在本地存储的位置 注意 Windows系统要带盘符 -->
<localRepository>/Users/mac/Documents/plugins/repo</localRepository>
<servers>
<server>
<!-- 重要,用于上传依赖, id 设置也很重要,建议都取一样,以免混淆 -->
<id>yq-maven</id>
<!-- 账号密码建议自行按仓库权限创建,如 maven 账户、npm 账户等 -->
<username>admin</username>
<password>admin123</password>
</server>
</servers>
<mirrors>
<!-- 地址设置,取我们设置 group 地址 -->
<mirror>
<id>yq-maven</id>
<mirrorOf>*</mirrorOf>
<url>http://192.168.10.17:10808/repository/maven-public/</url>
</mirror>
</mirrors>
</settings>
1.2 代码配置文件 pom.xml
<distributionManagement>
<!-- 发行版本配置 id和配置一样,name按自己意思取 -->
<repository>
<id>yq-maven</id>
<url>http://192.168.10.17:10808/repository/maven-releases/</url>
<name>nexus-release</name>
</repository>
<!-- 快照版本配置 id和配置一样,name按自己意思取 -->
<snapshotRepository>
<id>yq-maven</id>
<url>http://192.168.10.17:10808/repository/maven-snapshots/</url>
<name>nexus-snapshot</name>
</snapshotRepository>
</distributionManagement>
<pluginRepositories>
<!-- 插件仓库配置,这里配置 group 地址 -->
<pluginRepository>
<id>yq-maven</id>
<url>http://192.168.10.17:10808/repository/maven-public/</url>
</pluginRepository>
</pluginRepositories>
2 npm 配置
# 在项目根目录新建 .npmrc 文件,内容输入,后续使用npm i就会从 nexus3 仓库配置下载依赖
registry=http://192.168.10.17:10808/repository/npm-public/
# 上传需要登录,输入用户名和密码即可
npm login http://192.168.10.17:10808/repository/npm-public/