maven仓库访问顺序小结

 更新时间:2023年10月30日 11:52:08   作者:SYKMI  
在日常操作中,相信很多人在maven仓库的优先级顺序是什么问题上存在疑惑,本文就来介绍一下maven仓库访问顺序,具有一定的参考价值,感兴趣的可以了解一下

1.没有配置私服的情况下(大部分情况下)

在这里插入图片描述

如上图所示,maven是依次从本地仓库、中央仓库和第三方仓库获取依赖的,其实在maven中并不是以这三种类型区分的,在maven中只有两种仓库类型,本地仓库和远程仓库,我图中的中央仓库和第三方仓库都属于远程仓库,这里只是细化了。

  • 首先当构建项目时,如果缺少依赖项,maven会从配置的本地仓库中寻找该依赖
  • 当本地仓库不存在时,maven会去中央仓库寻找该依赖,一般地,我们国内用户都会在安装maven时在setting.xml中添加中央仓库的镜像以加快速度,所以如果你对中央仓库配置了aliyun的镜像地址,那么到这一步时maven会去镜像地址查找该依赖
  • 如果你的项目中有些依赖在中央仓库不存在,那么就代表中央仓库也无法找到,这时maven会去通过pom.xml文件中定义的远程仓库依次访问查找依赖,直到遇到第一个查找到的依赖即停止查找并下载依赖到本地仓库
  • 如果遍历完远程仓库仍然未找到,maven则报错
    tips:我不建议在配置aliyun镜像的时候设置通配符去代替所有远程仓库,就像这样
	<mirror>
	  <id>alimaven</id>
	  <name>aliyun maven</name>
	  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
	  <mirrorOf>*</mirrorOf>
	</mirror>

这样写就代表该配置是所有maven仓库的镜像,任何对于远程仓库的请求都会被转到该地址,但是aliyun只是中央仓库的镜像,所以如果你这样写就会导致依赖永远拉取不下来(如果该依赖是中央仓库没有的),还是建议规范一些,mirrorOf设置为central

2.配置私服的情况下

在这里插入图片描述

  • 首先当构建项目时,如果缺少依赖项,maven会从配置的本地仓库中寻找该依赖
  • 如果本地仓库不存在需要的依赖,maven会去配置的私服中查找依赖并下载到本地仓库
  • 如果私服也没有找到,私服会向它配置的其他远程仓库发送请求,例如中央仓库或其他远程仓库等,如果找到依赖则缓存到私服中并提供该依赖
  • 最终,如果所需的构件在私服上配置的任何远程仓库中都无法找到,则Maven将报告构建失败。
    tips:这里所说的私服也是一种特殊的远程仓库,也就是说,对于maven来说,除了本地仓库,其他的仓库都属于远程仓库

到此这篇关于maven仓库访问顺序小结的文章就介绍到这了,更多相关maven仓库访问顺序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

您可能感兴趣的文章:

相关文章

  • 工作中Java集合的规范使用操作详解

    工作中Java集合的规范使用操作详解

    这篇文章主要为大家详细介绍了工作中Java集合使用时需要注意的规范,文中的示例代码讲解详细,对我们使用Java集合有一定的帮助,感兴趣的可以了解一下
    2022-11-11
  • Java基础教程之List集合的常用方法

    Java基础教程之List集合的常用方法

    这篇文章主要给大家介绍了关于Java基础教程之List集合的常用方法,在Java编程中List集合是一种常用的数据结构,用于存储一组元素,有时候我们需要对List集合中的元素进行分组操作,即将相同属性或特征的元素归类到一组,需要的朋友可以参考下
    2023-10-10
  • mybatis collection和association的区别解析

    mybatis collection和association的区别解析

    这篇文章主要介绍了mybatis collection解析以及和association的区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • QueryWrapper中or的使用技巧分享

    QueryWrapper中or的使用技巧分享

    在日常的开发工作中,处理数据库查询是一个非常常见的任务,尤其是当我们需要在复杂条件下筛选数据时,如何编写高效、简洁且可维护的查询逻辑显得尤为重要,本文给大家介绍了QueryWrapper中or的使用技巧,需要的朋友可以参考下
    2024-10-10
  • Java反射框架Reflections示例详解

    Java反射框架Reflections示例详解

    这篇文章主要介绍了Java反射框架Reflections示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 配置了jdk的环境idea却提示找不到jdk解决办法

    配置了jdk的环境idea却提示找不到jdk解决办法

    在使用Java编程语言进行开发时,IDEA是一个非常流行和强大的集成开发环境,这篇文章主要给大家介绍了关于配置了jdk的环境idea却提示找不到jdk的解决办法,需要的朋友可以参考下
    2023-12-12
  • Java求10到100000之间的水仙花数算法示例

    Java求10到100000之间的水仙花数算法示例

    这篇文章主要介绍了Java求10到100000之间的水仙花数算法,结合实例形式分析了水仙花数的概念及相应的java算法实现技巧,需要的朋友可以参考下
    2017-10-10
  • Java 中FastJson的基本使用

    Java 中FastJson的基本使用

    fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。下面通过本文给大家介绍Java 中FastJson的基本使用,需要的朋友参考下吧
    2017-11-11
  • MyBatis-Plus中如何配置加密功能(使用AES算法)

    MyBatis-Plus中如何配置加密功能(使用AES算法)

    本文将详细介绍如何实现 MyBatis-Plus 中的配置加密功能,并给出相应的代码示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • spring boot实现验证码功能

    spring boot实现验证码功能

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。这篇文章主要介绍了spring boot实现验证码功能,需要的朋友可以参考下
    2018-04-04

最新评论