一、文件目录

nexus2.12.0\sonatype-work\nexus  下的文件

maven搜索 仓库 maven本地仓库索引_代理

health-check     健康检查(心跳)
 indexer             每个仓库的索引解析文件
 logs                  日志文件
 storage             每个仓库数据文件(jar包、元数据、索引文件等)

sonatype-work\nexus\indexer   下的文件

maven搜索 仓库 maven本地仓库索引_nexus_02

每个文件夹中存放索引的解析文件

sonatype-work\nexus\storage\central  下的文件

maven搜索 仓库 maven本地仓库索引_maven私服_03

.index    索引原文件目录
javax 、 mysql  下载的jar文件目录

sonatype-work\nexus\storage\central\.index  下的文件

maven搜索 仓库 maven本地仓库索引_索引_04

二、仓库名称和定义

maven搜索 仓库 maven本地仓库索引_maven私服_05

仓库类型(type)
group:仓库组
hosted:宿主
proxy:代理
virtual:虚拟
仓库格式(Format)
有两种maven1和maven2,下面的仓库分类只介绍maven2
仓库策略(Policy)
Release:发布版本
Snapshots:快照版本
仓库分类介绍
Public Repositories:该仓库组将Policy(策略)为Release的仓库聚合并通过一个地址对外提供服务
3rd party:用来部署无法从公共仓库获取的第三方发布版本的jar包
Apache Snapshots:用来代理Apache Maven仓库的快照版本jar包
Central:该仓库代理Maven中央仓库,其Policy(策略)为Release,因此只会下载和缓存中央仓库中的发布版本jar包
Codehaus Snapshots:用来代理CodeHaus Maven仓库的快照版本jar包
Release:用户部署组织内部的发布版本的jar包
Snapshots:用来部署组织内部的快照版本的jar包

三、仓库配置

中央仓库自动下载索引文件,本质是在添加了Task任务。(用到了Quartz)

maven搜索 仓库 maven本地仓库索引_nexus_06

修改Releases配置,将Deployment Policy设置为Allow Redeploy。

既部署策略:修改为 允许重新部署。

maven搜索 仓库 maven本地仓库索引_nexus_07

四、中央仓库索引下载和使用

方法一:

由上图,中央仓库 Download Remote Indexes 修改为 ture 后会自动去下载索引文件。

maven搜索 仓库 maven本地仓库索引_maven搜索 仓库_08

下载后的索引文件为

maven搜索 仓库 maven本地仓库索引_代理_09

解析后的索引文件

maven搜索 仓库 maven本地仓库索引_nexus_10

在浏览器输入:

http://localhost:8084/nexus/content/repositories/central/.index/nexus-maven-repository-index.gz

就会把索引文件下载。

刷新查看

maven搜索 仓库 maven本地仓库索引_nexus_11

方法二:

手动下载索引文件,会在Scheduled Task 添加一个任务。

maven搜索 仓库 maven本地仓库索引_索引_12

修复索引:重新下载索引文件,然后解析索引。

方法三:

手动更新索引

下载索引文件:

https://repo1.maven.org/maven2/.index/

或者

http://repo.maven.apache.org/maven2/.index/

maven搜索 仓库 maven本地仓库索引_代理_13

下载索引jar包

maven.outofmemory.cn/org.apache.maven.indexer/indexer-cli/

maven搜索 仓库 maven本地仓库索引_代理_14

把下载的文件放在同一目录

maven搜索 仓库 maven本地仓库索引_maven搜索 仓库_15

命令窗口定位到该目录然后执行执行: java -jar indexer-cli-5.1.1.jar -u nexus-maven-repository-index.gz -d indexer

等待几分钟,先关闭nexus服务,然后清空 sonatype-work\nexus\indexer\central-ctx ,把解压完毕 indexer里面的文

粘贴到该文件夹,重启nexus服务,刷新索引,索引就可以重新使用。

五、组仓库同步索引

选择组仓库,右击选择更新索引。

maven搜索 仓库 maven本地仓库索引_nexus_16

会在sonatype-work\nexus\storage\public\.index文件夹下同步索引

maven搜索 仓库 maven本地仓库索引_maven搜索 仓库_17

在浏览器输入  http://localhost:8084/nexus/content/groups/public/.index/nexus-maven-repository-index.gz就会把索引文件下载。

六、上传第三方jar

maven搜索 仓库 maven本地仓库索引_nexus_18

七、添加阿里代理仓库

阿里 仓库镜像地址:https://maven.aliyun.com/nexus/content/groups/public

可以参考阿里配置指南:https://help.aliyun.com/document_detail/102512.html?spm=a2c40.aliyun_maven_repo.0.0.30be3054sXkNli

添加代理仓库

maven搜索 仓库 maven本地仓库索引_代理_19

输入名称和地址

maven搜索 仓库 maven本地仓库索引_代理_20

保存完毕后可能出现这种情况    in service - Remote Automatically Blocked and Unavailable(远程自动阻止和不可用)

maven搜索 仓库 maven本地仓库索引_代理_21

可以参考这篇文章    https://support.sonatype.com/hc/en-us/articles/213464888-A-proxy-repository-is-not-working-status-says-Remote-Automatically-Blocked-and-Unavailable-

修改方法是:把Auto Blocking Enabled   修改为 false

maven搜索 仓库 maven本地仓库索引_maven私服_22

修改后的样子

maven搜索 仓库 maven本地仓库索引_代理_23

把新添加的仓库 添加到组仓库并调整位置

maven搜索 仓库 maven本地仓库索引_代理_24

这样通过私服下载 jar时 阿里镜像仓库会优先中央仓库下载,提高速度。