Maven仓库分类的优先级

目录
  • 1.仓库的分类
  • 2.仓库的优先级

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仓库优先级内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Maven默认中央仓库(settings.xml 配置详解)

    Maven的安装 安装Maven之前要确保已经安装好了jdk,并且配置好了环境变量JAVA_HOME.具体安装步骤如下: 1. 从apache网上下载maven项目的压缩包.下载地址为:http://maven.apache.org/download.html.比如现在最新的Maven版本是3.0.4,那么我下载好的安装文件就是apache-maven-3.0.4.zip. 2. 将下载后的压缩包解压到Maven的安装目录,比如说是D:\\develop,那么解压后就是D:\\develop\\

  • maven配置阿里仓库的方法步骤

    大家使用maven下载jar包会很慢,最主要的原因是maven的仓库在英国,但如果使用了阿里的仓库下载jar包就会变得很便捷.下面是如和配置阿里的仓库. <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/repos

  • Maven中央仓库地址配置大全

    在上一篇文章中完成了 <Maven镜像地址大全 >,后来又花了时间又去收集并整理了关于 maven 远程仓库地址,并整理于此,关于 Maven 远程仓库地址的配置方式有两种, 第一种:直接在项目的 pom.xml 文件中进行修改(不推荐,尤其是在多人协助的开发过程中非常的费事费力): 第二种:将 Maven 的远程仓库统一的配置到 Maven 的 Settings.xml 的配置文件中: Maven 中央仓库地址大全 1.阿里中央仓库(首推1) <repository> <i

  • 修改maven本地仓库路径的方法

    本地仓库是指存在于我们本机的仓库,在我们加入依赖时候,首先会跑到我们的本地仓库去找,如果找不到则会跑到远程仓库中去找.对于依赖的包大家可以从这个地址进行搜索:http://mvnrepository.com/. 远程仓库是指其他服务器上的仓库,包括全球中央仓库,公司内部的私服,又或者其他公司提供的公共库.后面会专门聊聊私服,公共库的话只是一个地址,大家会引用就行了. Maven的本地仓库是用来存储所有项目的依赖关系(插件jar和其他文件,这些文件被Maven下载)到本地文件夹.很简单,当你建立一

  • maven配置本地仓库的方法步骤

    目录 1.下载apache-maven-3.6.3-bin.zip 2.配置环境变量 3.测试 4.配置本地仓库 5.输入命令 本文主要介绍了maven配置本地仓库,分享给大家,具体如下: 官网http://maven.apache.org/download.cgi 1.下载apache-maven-3.6.3-bin.zip 然后解压放在本地盘(我放在了C盘,重命名为maven).然后再新建一个文件夹,命名为:maven-repository,作为本地仓库. 2.配置环境变量 在系统属性-环境

  • 解决idea更新maven仓库的图文教程

    由于使用idea的时间比较短,所以有时候好多在eclipse中都很简单的问题,在idea就显得非常难,完全不知道怎么操作. 今天就解决一下使用idea更新maven仓库,创建maven时,导入了本地仓库中不存在的spring版本,idea直接报红,我知道是因为没有这个版本的spring导致的,更新本地仓库就可以解决,因此先执行了如下操作: 提示失败.原因我也不是太清楚(英语不太好,没读太懂),但问题还是要继续解决.于是继续上网检索,找方案.就是这个过程中,想到了是不是因为本地仓库配置的有问题,然

  • Gradle使用Maven仓库的方法

    本文介绍了Gradle使用Maven仓库的方法,分享给大家,具体如下: 在build.gradle文件中, 修改repositories如下: repositories { mavenLocal() mavenCentral() } 这样的话, 就会优先从maven的仓库中查找所需的jar包 我的maven配置本地仓库为D:\repository中(见底部的"如何修改maven本地仓库地址"), 为防止下载到C盘默认的目录下, 建议将setting.xml复制一份到C:\Users\用

  • Maven仓库分类的优先级

    目录 1.仓库的分类 2.仓库的优先级 1.仓库的分类 maven的仓库主要是用于存储及管理项目中所依赖的组件.可分为本地仓库和远程仓库,远程仓库有可以细分为中央仓库.私有仓库,中央仓库主要是由maven的开发团队负责开发管理的一些公共组件的公用的仓库:私有仓库主要是指个人通过一些第三方平台搭建的自己的专属仓库:私有仓库又可以根据配置的位置不同可分为全局profile仓库.项目profile仓库.项目仓库.镜像仓库. 本地仓库:本地仓库默认是在.m2文件夹中,可以通过settings.xml文件

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

    目录 1.官网的解释 2.案例讲解 2.1.settings.xml和pom都配置激活了各自的profile 2.2.settings.xml没有配置激活的profile,pom中配置了激活的profile 3.仓库配置建议 3.1 针对仓库配置的建议 3.2.针对settings文件的配置 上一篇我们详解了setttings.xml的配置项,里面的配置项基本都和仓库有关系,我们使用maven更多的也是要从仓库下载jar包,然后也把我们自己公共的jar包上传到仓库.由于我们是可以配置多个仓库的,

  • 详解Maven仓库之本地仓库、远程仓库

    什么是Maven仓库 在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文件,如log4j.jar,junit.jar等等. 每建立一个项目,你都需要建立这样的一个/lib目录,然后复制一对jar文件,这是很明显的重复.重复永远是噩梦的起点,多个项目不共用相同的jar文件,不仅会造成磁盘资源的浪费,也使得版本的一致性管理变得困难. 此外,如果你使用版本管理工具,如SVN(你没有使用版本管理工具?马上试试SVN吧

  • 利用github搭建个人maven仓库的方法步骤

    缘起 之前看到有开源项目用了github来做maven仓库,寻思自己也做一个.研究了下,记录下. 简单来说,共有三步: deploy到本地目录 把本地目录提交到gtihub上 配置github地址为仓库地址 配置local file maven仓库 deploy到本地 maven可以通过http, ftp, ssh等deploy到远程服务器,也可以deploy到本地文件系统里. 例如把项目deploy到/home/hengyunabc/code/maven-repo/repository/目录下

  • maven仓库repositories和mirrors的配置及区别详解

    maven仓库配置 仓库优先级为:本地仓库(localRepositories) > profile中的repositories仓库 > POM > mirrors全局仓库 通过mirror配置 如果仓库X可以提供仓库Y所有的内容,那么我们就可以认为X是Y的一个镜像,通俗点说,可以从Y获取的构件都可以从他的镜像中进行获取.可以采用镜像的方式配置远程仓库,镜像在settings.xml中进行配置,在setting.xml中的<mirrors>标签下加入如下子标签配置便配置了一个

  • 详解如何将本地JAR包添加到本地Maven仓库中

    详解如何将本地JAR包添加到本地Maven仓库中 有些时候,当我们需要在自己的maven工程中添加一个确定的jar而发现Maven中央仓库不存在时,但是我们自己手上有这些需要的jar包,那么我们可以自给自足,把这个jar包添加到我们的自己的maven仓库中,这样方便在maven工程中引用. 比如sqljdbc.jar在Maven中央仓库中找不到,但是我们的maven工程中确实需要这样的一个jar包,那么我们首先需要下载对应版本的sqljdbc.jar包到本地,然后按照以下的命令添加到本地仓库.(

  • 将本地jar包安装进入maven仓库(实现方法)

    实际项目中pom.xml依赖写法: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>3.1.0.RELEASE</version> </dependency> Maven 安装 JAR 包的命令是: mvn install:install-fi

  • 解决android studio 3.0 加载项目过慢问题--maven仓库选择

    今天用android studio 3.0打开项目时发现一直在谷歌的maven仓库加载 卡到这不动了,看了下maven仓库的配置发现: buildscript { repositories { jcenter() maven { url 'https://maven.google.com' name 'Google' } google() } dependencies { classpath 'com.android.tools.build:gradle:3.0.0' // NOTE: Do n

  • 将下载到本地的JAR包手动添加到Maven仓库的方法

    <!-- https://mvnrepository.com/artifact/ojdbc/ojdbc --> <!-- (参数一):下载到本地的ojdbc-10.2.0.4.0.jar包的真实存放路径 --> <dependency> <groupId>ojdbc</groupId>-----------------(参数二) <artifactId>ojdbc</artifactId>-----------(参数三)

随机推荐