maven的setting文件-02

仓库与镜像

1.仓库分类

maven 的仓库分为本地仓库和远程仓库。

2.本地仓库

本地仓库就是储存在你自己电脑上的仓库

3.远程仓库

远程仓库也叫做中央仓库,默认的远程仓库是maven官方的仓库,maven官方仓库地址为:

https://repo.maven.apache.org/maven2/.    它的下载速度比较慢.

远程仓库虽然maven提供了一个拥有jar包比较全的,   但是由于它的下载速度比较慢,而且它那里的jar包也不是100%都全.所以市面上就有人建立了如aliyun等各种各样的远程仓库.

4.镜像仓库

maven官方仓库的地址在国外,访问比较慢,因此阿里巴巴就把maven官方仓库的jar包全部下载下来,放到自己国内的aliyun仓库,全部复制粘贴,一模一样,就跟镜像一样,所以也叫镜像仓库.

5.为什么要配置多个仓库

我们都知道,maven 的仓库分为本地仓库和远程仓库。默认的远程仓库叫做中央仓库,地址为:https://repo.maven.apache.org/maven2/,它的下载速度比较慢,不做任何配置时,下载一个 dubbo 的 jar 包,就是从中央仓库下载的.

这个时候我们就可以为项目配置多个仓库地址,下载时会由上到下依次尝试,哪个仓库成功了,就停止尝试,因此可以把速度快的仓库配置在靠上位置

注意:其实配多个仓库的更主要原因是,某些 jar 包只在 A 仓库有,在 B 仓库没有,这时就得配置多个仓库了

6.在pom文件里用<repositories>标签配置仓库.(很少用)

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    ...

    <repositories>
        <repository>
            <id>aliyun</id>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </repository>
        <repository>
            <id>central</id>
            <url>https://repo.maven.apache.org/maven2/</url>
        </repository>
    </repositories>
    
    ...
    
</project>

上面这种把仓库地址写在pom文件的做法很少用.

7.<mirror>和<repositories>的区别

  • 首先<mirror>它是配置在 settings.xml 中,<repository> 一般配置在 pom.xml 中,位置不同

  • 其次 <mirror>的目的很单纯:就是为了加速,用镜像地址覆盖掉原始仓库的地址

用法示例:接下来配置镜像的 <mirrorOf> 为 central,在 settings.xml 中

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

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

  ...
    
</settings>

就会覆盖掉 pom.xml 中真正的 <id> 为 central 的仓库,取而代之,即使配置了 id 为 central 的仓库,实际也会走 mirror 的下载

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    ...

    <repositories>
        <repository>
            <id>central</id>
            <url>https://repo.maven.apache.org/maven2/</url>
        </repository>
    </repositories>
    
    ...
    
</project>

注意:

  • 最好重启 idea 让 mirror 生效

  • 如果镜像的 <mirrorOf>* 号,则所有仓库的下载都会走 mirror

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值