Nexus离线更新中央仓库索引

我们知道 Nexus 可以远程下载和缓存中央仓库索引,但是对于国内用户来说,Nexus 远程更新索引使用的站点位于国外且部分索引文件较大,经常会出现下载速度缓慢或索引文件不完整等情况。

下面我们将介绍一种更加快捷可靠的索引更新方式:离线更新中央仓库索引。

离线更新中央仓库索引,顾名思义,就是直接将索引文件下载,然后拷贝至 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 中央仓库离线索引下载列表
Nexus 中央仓库离线索引下载列表

2. 浏览器访问 http://mvnrepository.com/,搜索 Indexer CLI,选择 Maven :: Indexer CLI,如图 2 所示。

Nexus 索引生成器
Nexus 索引生成器

3. 建议选择 5.1.1 版本,如图 3 所示。

选择 Indexer CLI 版本
选择 Indexer CLI 版本

4. 在 Indexer CLI » 5.1.1 版本详情页,点击 View All,查看该版本包含的所有文件。

Nexus indexer-cli 5.1.1 详情
Nexus indexer-cli 5.1.1 详情

5. 在文件列表中,点击 indexer-cli-5.1.1.jar ,下载该文件,如图 5 所示。

Nexus indexer-cli 文件列表
Nexus indexer-cli 文件列表

解压

1. 将 nexus-maven-repository-index.gz 、nexus-maven-repository-index.properties 以及 indexer-cli-5.1.1.jar 三个文件都存放到 index(目录的名称及位置均为自定义,没有特殊规定)目录下,如图 6 所示。

Nexus 中央仓库离线索引文件
Nexus 中央仓库离线索引文件

2. 打开命令行窗口,跳转到 index 目录,执行以下命令,解压索引文件。

java -jar indexer-cli-5.1.1.jar -u nexus-maven-repository-index.gz -d indexer

解压过程大约需要 10 分钟左右,请耐心等待,解压完成后,结果如图 7 所示。

Nexus 中央仓库离线索引解压
Nexus 中央仓库离线索引解压

3. 解压完成后,在 index 中会生成一个名为 indexer 的目录,该目录中存放的就是中央仓库离线索引文件,如图 8 所示。

Nexus 离线索引文件
Nexus 离线索引文件

更新并验证索引

1. 将所有索引文件(不包含目录)全部拷贝到“Nexus\sonatype-work\nexus\indexer\central-ctx”目录中,如图 9 所示。

Nexus 中央仓库索引目录
Nexus 中央仓库索引目录

2. 重启 Nexus,在仓库列表中,选中 Central 代理仓库,然后点击 Browse Index 选项卡,结果如图 10 所示。

Nexus 离线索引
Nexus 离线索引

3. 点击 browse Remote 选项卡,结果如图 11 所示。

Nexus 远程索引
Nexus 远程索引

4. 对比 Browse Index 和 Browse Remote 中的索引,若两者完全一致,则表示离线索引更新成功。