nexus索引操作

2021-06-28 10:06:40 浏览数 (1)

一.简介

Nexus 通过维护仓库的索引来提供搜索功能。

二.索引更新

点击仓库,右键,会弹出一组列表,其中就有修复索引和更新索引功能,你可以在 Browse Index 选项卡看到当前仓库的最新索引树状图。 Browse Storage 选项卡可以看到本地文件夹的所有jar树状图。

三.索引更新与Jar上传

一般,我们不需要进行索引更新,因为jar一般是通过Artifact Upload选项卡上传或者通过程序配置distributionManagement节点进行deploy上传。这时能实时更新。

以上针对jar很少量情况,如果需要大量上传jar:比如你在内网环境下,需要手动上传大量jar包;又或者你需要简单快速地把本地Maven仓库的所有 jar 扔到 nexus 上?

这时,其实我们可以直接把本地Maven仓库打包,直接覆盖到 nexus 那台主机的相应Hosted仓库的Local Storage Location文件夹。但是扔上去后,搜索时并不能搜到我们上传的 jar,因为还未给这些 jar 建立索引!

我们可以通过Scheduled Tasks定时任务来定时更新索引:

  1. Task Type 选择 Update Repositories Index
  2. Task Settings下可直接选择 Repository/Group 为 All Repositories,表示所有仓库都进行索引更新
  3. Recurrence 可选择更新频率,Manual表示手动执行。

PS:由于我们公司私服部署在内网,需要先外网下载依赖,然后打包传到内网,最后上传到 nexus 私服,并手动更新索引。我通过程序实现了自动化:

  1. 外网的某页面贴入maven依赖
  2. 构造一个maven项目,用于执行 denpency:tree 解析依赖树
  3. 打包下载相应 jar
  4. 通过指定渠道传回内网 ftp 服务器
  5. 内网应用程序监听ftp
  6. 发现文件后下载到 nexus 私服相关Local Storage Location文件夹
  7. 调用Scheduled Tasks手动更新索引。

关键在于更新索引处:

以上的 [id] 表示你建立的定时任务ID,它是递增的,总是等于你建立的定时任务的次数。如你第五次建立定时任务,则该任务的ID即是5。

0 人点赞