Maven 配置文件中mirrorOf与repository节点的理解

maven 配置文件setting.xml中的mirrorOf与repository节点一直分不太清楚,现在根据自己的整理归纳一下:

1.maven中的仓库(Repository)有哪些类型?

包括本地仓库(配置文件中的localRepository节点指定的一个文件夹)和远程仓库,其中远程仓库又可以分中央仓库、私服仓库,中央仓库是maven官方指定的仓库,可以理解为“寻找的最后一站”。私服可以是公司内部搭建的Maven仓库管理器像阿里的一些仓库也可以是自己搭建的;

2.项目下载依赖的顺序是怎么样的?

本地仓库---->私服----->中央仓库

3.什么是mirror?

仓库的镜像,就是说如果一个仓库(repository)配置了对应的mirror,那么在需要从这个仓库下载依赖的时候会自动请求mirror中的地址;比如以下配置,对ali_mirro的请求会自动被重定向到id为ali中的url

<?xml version="1.0" encoding="utf-8"?>

<settings> 
  <mirrors> 
    <mirror> 
      <id>ali</id>  
      <mirrorOf>ali_mirro</mirrorOf>  
      <name>ali</name>  
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
    </mirror> 
  </mirrors>  
  <profiles> 
    <profile> 
      <repositories> 
        <repository> 
          <id>ali_mirro</id>  
          <name>ali_mirro</name>  
          <url>http://xxxx/</url>  
          <layout>default</layout> 
        </repository> 
      </repositories> 
    </profile> 
  </profiles> 
</settings>

4.mirrorOf的写法

*    代表所有,就是说所有在本地仓库无法找到的依赖都会去该mirror中查找 ;

external:*  就是说如果一个依赖可以在localhost的或者基于文件的仓库中可以找到,就不会请求该mirror,示例:

<?xml version="1.0" encoding="utf-8"?>

<settings> 
  <mirrors> 
    <mirror> 
      <id>second</id>  
      <mirrorOf>external:*</mirrorOf>  
      <name>ali</name>  
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
    </mirror> 
  </mirrors>  
  <profiles> 
    <profile> 
      <repositories> 
        <repository> 
          <id>ali_mirro</id>  
          <name>ali_mirro</name>  
          <url>http://localhost:8888/****</url>  
          <layout>default</layout> 
        </repository> 
      </repositories> 
    </profile> 
  </profiles> 
</settings>

该配置中,如果可以在ali_mirro中找到依赖,是不会去second中找的,什么是基于文件的仓库呢,就是这种:

<repository>
  <id>my-repo</id>
  <url>file:///C:\my-repo</url>
</repository>

相当于在指定的文件夹中寻找

repo,repo1 这种相当于去repo和repo1中寻找;

*,!repo1  这种相当于去除了repo1的仓库中寻找

参考:

http://maven.apache.org/settings.html

https://stackoverflow.com/questions/41244789/maven-mirror-tag-meaning-of-external-parameter

https://my.oschina.net/sunchp/blog/100634

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值