Nexus离线更新中央仓库索引
精华
小牛编辑
129浏览
2023-03-14
我们知道 Nexus 可以远程下载和缓存中央仓库索引,但是对于国内用户来说,Nexus 远程更新索引使用的站点位于国外且部分索引文件较大,经常会出现下载速度缓慢或索引文件不完整等情况。下面我们将介绍一种更加快捷可靠的索引更新方式:离线更新中央仓库索引。
离线更新中央仓库索引,顾名思义,就是直接将索引文件下载,然后拷贝至 Nexus 工作目录中,以达到离线更新索引的目的。
离线更新中央仓库索引主要分为以下 3 步:
1. 浏览器访问 https://repo.maven.apache.org/maven2/.index/ ,下载 nexus-maven-repository-index.gz 和 nexus-maven-repository-index.properties 两个文件(一般位于列表的末尾),如图 1 所示。
2. 浏览器访问 http://mvnrepository.com/,搜索 Indexer CLI,选择 Maven :: Indexer CLI,如图 2 所示。
3. 建议选择 5.1.1 版本,如图 3 所示。
4. 在 Indexer CLI » 5.1.1 版本详情页,点击 View All,查看该版本包含的所有文件。
5. 在文件列表中,点击 indexer-cli-5.1.1.jar ,下载该文件,如图 5 所示。
2. 打开命令行窗口,跳转到 index 目录,执行以下命令,解压索引文件。
解压过程大约需要 10 分钟左右,请耐心等待,解压完成后,结果如图 7 所示。
3. 解压完成后,在 index 中会生成一个名为 indexer 的目录,该目录中存放的就是中央仓库离线索引文件,如图 8 所示。
2. 重启 Nexus,在仓库列表中,选中 Central 代理仓库,然后点击 Browse Index 选项卡,结果如图 10 所示。
3. 点击 browse Remote 选项卡,结果如图 11 所示。
4. 对比 Browse Index 和 Browse Remote 中的索引,若两者完全一致,则表示离线索引更新成功。
离线更新中央仓库索引,顾名思义,就是直接将索引文件下载,然后拷贝至 Nexus 工作目录中,以达到离线更新索引的目的。
离线更新中央仓库索引主要分为以下 3 步:
- 文件下载
- 解压
- 更新并验证索引
文件下载
首先,我们需要下载以下 3 个文件:- nexus-maven-repository-index.gz
- nexus-maven-repository-index.properties
- indexer-cli-5.1.1.jar
1. 浏览器访问 https://repo.maven.apache.org/maven2/.index/ ,下载 nexus-maven-repository-index.gz 和 nexus-maven-repository-index.properties 两个文件(一般位于列表的末尾),如图 1 所示。
![Nexus 中央仓库离线索引](https://imgs.xnip.cn/cj/s/94/d9dbfff6-e347-4568-aa2e-cd5d1d91b89a.png)
图1:Nexus 中央仓库离线索引下载列表
2. 浏览器访问 http://mvnrepository.com/,搜索 Indexer CLI,选择 Maven :: Indexer CLI,如图 2 所示。
![索引生成器](https://imgs.xnip.cn/cj/s/18/d8c92d15-d5e7-4c1a-81d7-f34f2575a89a.png)
图2:Nexus 索引生成器
3. 建议选择 5.1.1 版本,如图 3 所示。
![Nexus indexer 5.1.1](https://imgs.xnip.cn/cj/s/58/104c3e23-65a4-4b62-af07-c55ed4a9b265.png)
图3:选择 Indexer CLI 版本
4. 在 Indexer CLI » 5.1.1 版本详情页,点击 View All,查看该版本包含的所有文件。
![Nexus Indexer-cli 5.1.1 详情](https://imgs.xnip.cn/cj/s/43/fcb7ed1a-2d4b-4909-8aa0-34c043e1e3f2.png)
图4:Nexus indexer-cli 5.1.1 详情
5. 在文件列表中,点击 indexer-cli-5.1.1.jar ,下载该文件,如图 5 所示。
![indexer -cli 5.1.1 文件列表](https://imgs.xnip.cn/cj/s/24/4b79957c-78d7-4330-ac73-a80132d7b761.png)
图5:Nexus indexer-cli 文件列表
解压
1. 将 nexus-maven-repository-index.gz 、nexus-maven-repository-index.properties 以及 indexer-cli-5.1.1.jar 三个文件都存放到 index(目录的名称及位置均为自定义,没有特殊规定)目录下,如图 6 所示。![Nexus index 目录](https://imgs.xnip.cn/cj/s/47/d4fd4cb4-17a3-434f-9a58-8302a29722b1.png)
图6:Nexus 中央仓库离线索引文件
2. 打开命令行窗口,跳转到 index 目录,执行以下命令,解压索引文件。
java -jar indexer-cli-5.1.1.jar -u nexus-maven-repository-index.gz -d indexer
解压过程大约需要 10 分钟左右,请耐心等待,解压完成后,结果如图 7 所示。
![](https://imgs.xnip.cn/cj/s/91/2154a9cc-5aa9-449e-b19d-df331942fd28.png)
图7:Nexus 中央仓库离线索引解压
3. 解压完成后,在 index 中会生成一个名为 indexer 的目录,该目录中存放的就是中央仓库离线索引文件,如图 8 所示。
![Nexus 离线索引文件](https://imgs.xnip.cn/cj/s/53/d2c7f2b2-afa2-435b-832c-5455d0725423.png)
图8:Nexus 离线索引文件
更新并验证索引
1. 将所有索引文件(不包含目录)全部拷贝到“Nexus\sonatype-work\nexus\indexer\central-ctx”目录中,如图 9 所示。![](https://imgs.xnip.cn/cj/s/15/ee6b3d73-985b-4303-abc3-eff4329d04ee.png)
图9:Nexus 中央仓库索引目录
2. 重启 Nexus,在仓库列表中,选中 Central 代理仓库,然后点击 Browse Index 选项卡,结果如图 10 所示。
![nexus browes index](https://imgs.xnip.cn/cj/s/81/79f89530-7b8e-4cf8-bda0-adc641c34c6b.png)
图10:Nexus 离线索引
3. 点击 browse Remote 选项卡,结果如图 11 所示。
![nexus browse romote](https://imgs.xnip.cn/cj/s/70/81c6047b-502d-426e-8f0e-b98a02f8fdae.png)
图11:Nexus 远程索引
4. 对比 Browse Index 和 Browse Remote 中的索引,若两者完全一致,则表示离线索引更新成功。
需要注意的是,目前只有 Nexus 2.x 可以通过以上方式离线更新中央仓库索引,Nexus 3.x 暂不支持该功能。若想在 Nexus 3.x 中使用离线索引,我们建议您先在 Nexus 2.x 中离线更新索引后,再将数据迁移到 Nexus 3.x 中。