maven仓库配置,镜像,私服,远程仓库,本地仓库

仓库列举

在这里插入图片描述

镜像

概念解释

maven的镜像是在setting文件中配置的,镜像的作用相当给其他仓库中做的一个代理,假设A_repository中的资源是B_repository中资源的子集,那么就可以把B_repository配置成A_repository的代理镜像,也就可以吧B_repository称为A_repository的镜像。

适用场景(用途)

  • 为什么需要镜像呢,在不做任何处理的场景下,我们利用maven拉包(),会到A_repository仓库去拉,但如果是这个repository不在国内,会导致拉包的效率非常低,然后我们把国内的某个maven仓库配置成他的镜像,让所有去A_repository的拉包请求都转交B_repository来处理,因为B_repository在国内,那么包的下载速率就会有提升。
  • 所以镜像的配置可以理解为对原有repository的加速。

配置方法

在这里插入图片描述

  • 最外层的mirrors标签标示这是个镜像列表,里边可以配置多个镜像源,
  • 每个mirror代表一个镜像源,其中id作为镜像源的标示,url标示镜像源的地址,name没有明确作用,mirrorOf用来指被镜像的repository的id。

注意

  • 由于镜像仓库是会完全屏蔽被镜像仓库的,所以如果镜像仓库不稳定或者暂时无法访问的话,我们也是访问不到被镜像的仓库的。
  • 此外,对同一个repository配置的多个镜像,多个镜像是备份关系,只有上一个镜像找不到(即你访问的repository在这个mirror节点没匹配到)的场景下才会去匹配下一个镜像,如果一个镜像被匹配到了,但是找不到jar包,maven是不会再去第匹配第二个镜像,

私服

概念解释

私服,就是另一种特殊的远程仓库,它通常架设在局域网内的一台服务器上,用于代理所有外部的远程仓库,并且能接受内部项目的上传和获取。

适用场景(用途)

在实际的项目开发过程,可能会有很多自己打出来的项目特有的包,这些包一般是不会放在公共仓库中公开的,但是直接放在本地的话,项目中的其他成员不好访问,因此我们需要一个私有的远程仓库,让他来帮我们管理这些私有的包。
在这里插入图片描述

配置方法

认证配置

在这里插入图片描述

  • server标签外层还有一个servers标签表示多个私服的账号配置
  • server标签表示一个私服的账号配置
  • id表示私服的唯一标识
  • username表示私服的登录用户名
  • password表示私服的登录密码
私服信息配置

在这里插入图片描述

  • 最外层profiles标签说明可以配置多个私服
  • 内层profile标签代表这是一个私服配置
  • id标签是私服的唯一标识
  • repositories 仓库配置
  • repository 这里我并未尝试过对私服配置多个地址的做法
  • release和snapshot用来配置仓库是否允许为快照包和发布包的提供下载权限
  • 其中release和snapshot标签中可以加入updatePolicy标签用来设置更新评率,每一次mvn构建时,会提供一个时间戳,mvn通过比较比较这次构建的时间和上次构建的时间,以及是否超过设置的更新频率,来判断这次构建是否需要从远程更新依赖,always(每次构建都检查), daily(默认, 距上次构建检查时间超过一天), interval: x(距上次构建检查超过 x 分钟)、 never(从不)。
激活配置

在这里插入图片描述
然后配置对私服配置的激活,其中activeProfile中配置填入想要激活的私服配置id

pom文件打包配置

在这里插入图片描述
在pom文件中进行打包配置,使得在项目中的包可以被发布当私服中去

  • distributionManagement标签表明这是打包配置
  • repository表明这是稳定版本的打包地址
  • id对应私服唯一id标识
  • name可以随便配
  • url表示私服的地址
  • snapshotRepository表明这是快照版本的打包地址

好处

  • 项目中配置多远程仓库的情况下,会导致项目构建速度很慢,配置私服来代替多个远程仓库可以加快项目的构建速度
  • 对于一些无法从外部获取的依赖,可以通过放入私服中的方式进行获取
  • 降低中央仓库的负荷:maven中央仓库被请求的数量是巨大的,配置私服也可以大大降低中央仓库的压力

远程仓库

概念解释

一些mvn依赖的存放地址

适用场景(用途)

配置依赖的下载地址,有些依赖在指定的远程仓库中,但是mvn默认只会从中央仓库去找,所以需要我们自己制定远程仓库去下载依赖

配置方法

在这里插入图片描述

  • repositories表示多个远程仓库的配置
  • repository表示一个远程仓库的配置
  • release和snapshot表示是否有从改远程仓库下载依赖的权限
  • id表示远程仓库的唯一id标识
  • name并没有什么实际意义
  • url表示远程仓库的地址

本地仓库

本地仓库就是我们从就是自己pc中的 .m2/repository,我们从非本地仓库中获取的依赖都会放到这里,这个本地仓库就是一个缓存,当我们请求依赖的时候,会检查本地仓库里有没有,如果没有的话,再向远程仓库发起请求
本地仓库是远程仓库的一个缓冲和子集,当你构建Maven项目的时候,首先会从本地仓库查找资源,如果没有,那么Maven会从远程仓库下载到你本地仓库。这样在你下次使用的时候就不需要从远程下载了。如果你所需要的jar包版本在本地仓库没有,而且也不存在于远程仓库,Maven在构建的时候会报错,这种情况可能发生在有些jar包的新版本没有在Maven仓库中及时更新。

依赖的下载顺序

本地仓库 --> 私服 --> 镜像 --> 远程仓库

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值