我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Maven仓库分类的优先级

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Maven仓库分类的优先级

1.仓库的分类

maven的仓库主要是用于存储及管理项目中所依赖的组件。可分为本地仓库远程仓库,远程仓库有可以细分为中央仓库私有仓库,中央仓库主要是由maven的开发团队负责开发管理的一些公共组件的公用的仓库;私有仓库主要是指个人通过一些第三方平台搭建的自己的专属仓库;私有仓库又可以根据配置的位置不同可分为全局profile仓库项目profile仓库项目仓库镜像仓库

本地仓库:本地仓库默认是在.m2文件夹中,可以通过settings.xml文件的标签来指定本地仓库的目录。

<localRepository>D:\Work\Maven\repositoryNexus</localRepository>

全局profile仓库:通过 settings.xml 中的 profiles.profile.repositories.repository 配置,对所有使用该maven的项目都生效。

  <profiles>
   <profile>
   	<id>dev</id>
    <repositories>
      <repository>
        <id>nexus-repo</id>
        <name>nexus-repo</name>
        <url>http://127.0.0.1:8081/repository/maven-public/</url>
        <layout>default</layout>
		<releases><enabled>true</enabled></releases>
        <snapshots><enabled>true</enabled></snapshots>
      </repository>
    </repositories>
  </profile>
  </profiles>
  <!--激活profile-->
  <activeProfiles>
    <activeProfile>dev</activeProfile>
  </activeProfiles>

项目profile仓库:通过项目的pom.xml 中的 profiles.profile.repositories.repository 配置,仅对该maven的项目都生效。

 <profiles>
   <profile>
   	<id>dev</id>
    <repositories>
      <repository>
        <id>nexus-repo</id>
        <name>nexus-repo</name>
        <url>http://127.0.0.1:8081/repository/maven-public/</url>
        <layout>default</layout>
		<releases><enabled>true</enabled></releases>
        <snapshots><enabled>true</enabled></snapshots>
      </repository>
    </repositories>
    <!--激活profile-->
    <activation>
		<activeByDefault>true</activeByDefault>
	</activation>
  </profile>
  </profiles>

项目仓库:通过项目的pom.xml 中的 repositories.repository 配置,仅对该maven的项目都生效。

<repositories>
	<repository>
		<id>snapshots</id>
		<name>snapshots-repo</name>
		<url>http://127.0.0.1:8081/repository/maven-snapshots/</url>
		<layout>default</layout>
		<snapshots>
			<enabled>true</enabled>
			<updatePolicy>always</updatePolicy>
			<checksumPolicy>warn</checksumPolicy>
		</snapshots>
		<releases>
			<enabled>false</enabled>
			<updatePolicy>always</updatePolicy>
			<checksumPolicy>warn</checksumPolicy>
		</releases>
	</repository>
</repositories>

镜像仓库:通过 settings.xml 中的 mirrors.mirror 配置。主要提供一个方便切换远程仓库地址的途径。

<mirror>
  <id>nexus-aliyun</id>
  <name>Nexus aliyun</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>

中央仓库:是maven默认的远程仓库,在maven的lib安装目录中有一个maven-model-builder-3.0.4.jar,在这个jar包中有个org/apache/maven/model/pom-4.0.0.xml文件,在这个pom文件中就配置了中央仓库,默认的中央仓库的id为central

<repositories>
    <repository>
        <id>central</id>
        <name>Central Repository</name>
        <url>https://repo.maven.apache.org/maven2</url>
        <layout>default</layout>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

2.仓库的优先级

maven构建的时候,先从本地仓库去寻找组件,本地仓库找不到再去远程仓库中寻找,所以本地仓库的优先级要高于远程仓库。

要点:
(1)当配置多个repository时,无论是配置在settings.xml文件还是pom.xml文件中,依次从这些仓库中查找,如果第一个仓库能找到,就用第一个仓库,如果找不到,就依次往下找。
(2)当同时配置了多个repository和mirror时,如果当中某个repository的id与mirror的mirrorOf的内容相同时,则表示这个仓库被镜像了,将不在从该repository对应的url地址下载组件,而是直接从mirror中的url地址去下载组件。如果repository中的id都没有与mirror的mirrorOf的内容相同时,则依次从这些repository和mirror对应的url地址去查找,直到找到为止。
(3)当mirrorOf的内容为*时,则表示该镜像可以是所有仓库的镜像,无论配置了多少个仓库,都不会从这些仓库对应的url地址去下载组件,只会从这个mirror中的url地址去下载组件。

到此这篇关于Maven仓库分类的优先级的文章就介绍到这了,更多相关Maven仓库优先级内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Maven仓库分类的优先级

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Maven仓库分类的优先级

本文主要介绍了Maven仓库分类的优先级,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-17

maven如何优先读取本地仓库

Maven 在构建项目时会首先检查本地仓库,如果本地仓库中已经存在所需的依赖,则会直接使用本地仓库中的依赖,而不会再去远程仓库下载。如果你想让 Maven 优先读取本地仓库,可以按照以下步骤进行设置:打开 Maven 的配置文件 sett
2023-10-23

maven多个仓库查询的优先级顺序案例讲解

这篇文章主要介绍了maven多个仓库查询的优先级顺序,考虑到我们常用的配置文件是conf/settings.xml和工程里面的pom.xml文件,我们针对这两个文件的结合来分析仓库的使用顺序,需要的朋友可以参考下
2023-05-17

Maven仓库的分类有哪些

这篇“Maven仓库的分类有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Maven仓库的分类有哪些”文章吧。1. 本地
2023-06-26

maven怎么配置优先读取本地仓库

要优先读取本地仓库,可以在Maven的settings.xml文件中进行配置。首先,打开Maven的安装目录,找到conf文件夹中的settings.xml文件。如果没有该文件,可以从Maven官网下载一个示例文件。在settings.xm
2023-09-22

CSS选择器优先级的分类是什么

这篇文章主要讲解了“CSS选择器优先级的分类是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS选择器优先级的分类是什么”吧!一、优先级的分类我们可以把 CSS 的优先级从高到低来分成
2023-06-27

网页css优先级的示例分析

这篇文章主要为大家展示了“网页css优先级的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“网页css优先级的示例分析”这篇文章吧。在讲CSS优先级之前,我们得要了解什么是CSS,CSS是
2023-06-08

MySQL中 and or 查询的优先级分析

这个可能是容易被忽略的问题,首选我们要清楚: MySQL中,AND的执行优先级高于OR。也就是说,在没有小括号()的限制下,总是优先执行AND语句,再执行OR语句。 比如:select * from table where 条件1 AND
2022-05-15

Android提高Service优先级的方法分析

本文实例讲述了Android提高Service优先级的方法。分享给大家供大家参考,具体如下: Android 系统对于内存管理有自己的一套方法,为了保障系统有序稳定的运信,系统内部会自动分配,控制程序的内存使用。当系统觉得当前的资源非常有限
2022-06-06

C#的运算符优先级实例分析

这篇文章主要介绍了C#的运算符优先级实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#的运算符优先级实例分析文章都会有所收获,下面我们一起来看看吧。实例using System;namespace Op
2023-06-17

MySQL插入锁与数据库性能调优的优先级

MySQL插入锁和数据库性能调优都是数据库优化的重要方面,但在进行优化时,需要根据具体情况和需求来确定优先级。一般来说,以下是一些常见的优先级排列:数据库性能调优:数据库性能调优是数据库优化的基础部分,通过对数据库的结构设计、索引优化、查询
MySQL插入锁与数据库性能调优的优先级
2024-08-14

bootstrap.yml和bootstrap.properties的优先级问题实例分析

这篇文章主要介绍了bootstrap.yml和bootstrap.properties的优先级问题实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇bootstrap.yml和bootstrap.prope
2023-06-29

Javascript中访问器优先级的示例分析

这篇文章主要介绍Javascript中访问器优先级是怎样的,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.正常使用