NEXUS使用的两点经验

NEXUS使用的两点经验:
1)为什么maven下载下来有auth/AuthFaliure.class,直接上私服上找不到这个类?
2)3.x版本没有保存proxy包的工鞥呢,2.x版本有。所以需要下载代理包的,需要下载2.x版本。

1)答复:
在宿主hosted仓库里面有,因为宿主仓库里面已经存在相同版本名字的jar包,所以优先下载宿主仓库里的jar包。而宿主仓库里的jar包是自定义的,增加了这个auth包,而代理仓库里的是原始的是没有的。

前置条件:
1.设置idaeal的maven地址为系统maven安装目录
2.设置maven的本地仓库地址为 d:\eclipse_other
3.设置私服地址为内网私服地址

现象:
本地私服下载的shiro-web-1.4.0.jar有auth文件夹
在这里插入图片描述从私服地址上直接下载下来的jar包却不存在这个目录
在这里插入图片描述在这里插入图片描述疑问:为什么maven下载下来有auth/AuthFaliure.class,直接上私服上找不到这个类?
答复:在其他hosted仓库里面找,最终找到在宿主仓库里。
在这里插入图片描述

PS:
Repository与Mirror

定义

其实,mirror表示的是两个Repository之间的关系,在maven配置文件(setting.xml)里配置了…,即定义了两个Repository之间的镜像关系。

目的

配置两个Repository之间的镜像关系,一般是出于访问速度和下载速度考虑。

例如, 有一个项目,需要在公司和住所都编码,并在项目pom.xml配置了A Maven库。在公司,是电信网络,访问A库很快,所以maven管理依赖和插件都从A库下载;在住所,是网通网络,访问A库很慢,但是访问B库很快。这时,在住所的setting.xml里,只要配置一下…,让B库成为A库的mirror,即可不用更改项目pom.xml里对于A库的相关配置。

如果该镜像仓库需要认证,则配置setting.xml中的即可。

注意

需要注意的是,由于镜像仓库完全屏蔽了被镜像仓库,当镜像仓库不稳定或者停止服务的时候,Maven仍将无法访问被镜像仓库,因而将无法下载构件。

在这里插入图片描述proxy:即你可以设置代理,设置了代理之后,在你的nexus中找不到的依赖就会去配置的代理的地址中找 即现在本地仓库里(hosted)里面找,如果没有再从代理仓库里面找。

hosted:你可以上传你自己的项目到这里面

group:它可以包含前面两个,是一个聚合体。一般用来给客户一个访问nexus的统一地址。

以上的都是理论上的。经过实地检测后发现,获取到的包在不同的电脑上,可能会出现按照不同的顺序来获取的现象。同样的项目,同样的私服环境下,例如在A电脑,会先从私服hosted服务拿,而在B电脑有可能会先从项目已经配置的仓库里面获取jar包。

因此对于我们使用来说,最好的是项目里面配置唯一的仓库地址为私服地址,私服里再去管理代理和本地服务。

按照经验来说,maven获取包的顺序为1.开发环境本地仓库–2.项目中指定的镜像或者仓库,依据配置的先后顺序来搜索获取 3.私服中配置的仓库的顺序。

猜你喜欢

转载自blog.csdn.net/weixin_40821669/article/details/88415100