Nexus3~让构建速度快起来

819 阅读3分钟

什么是 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 仓库(其它仓库相似)


  1. 进入 Nexus3 主页后,右上角登录,随后点击设置图标进入后台管理,选择左侧菜单进入存储设置,创建一个新的存储,尽量不改动存储位置 image.png

image.png

image.png

  1. 接下来创建仓库,选择左侧菜单进入仓库设置,创建一个新仓库,找到 Maven2,先创建 proxy,这个是用来存放从代理地址下载下来的依赖包。在这里我们最好创建两个 proxy,一个是国内阿里仓库,一个是 maven repo,防止有些包阿里仓库暂时没有,创建方法一样。

image.png

image.png

image.png 3. 我们再创建 hosted, 这个用来存储我们本地上传的包,按照规范理分为(release 和 snapshots),这里我们只创建 release 的本地库,其余请自行了解规范知识。

image.png

  1. 再创建 group,这个就相当于我们获取依赖的入口了,在这里我们可以设置依赖包获取的顺序。

image.png

如此一来,我们就把本地的 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/