Maven仓库镜像配置的方法实现
作者:邢为栋
本文介绍了如何使用Maven仓库镜像来加速构建过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
在使用Maven构建中,使用仓库镜像,可以加速构建,这里介绍仓库镜像使用方法,留作笔记。
配置说明
使用仓库镜像
配置一个仓库的镜像,可以编辑配置文件(${user.home}/.m2/settings.xml):
如果没有${user.home}/.m2/settings.xml,可以从maven安装目录的conf目录下复制。
<settings>
  ...
  <mirrors>
    <mirror>
      <id>other-mirror</id>
      <name>Other Mirror Repository</name>
      <url>https://other-mirror.repo.other-company.com/maven2</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>
  ...
</settings>
参数说明:
| 参数 | 说明 | 
|---|---|
| id | 镜像ID | 
| name | 镜像名 | 
| url | 镜像url | 
| mirrorOf | 镜像仓库替换的目标仓库 | 
使用单一仓库
如果希望所有maven请求都访问一个仓库(比如自建仓库),可以指定maven使用单一仓库,配置如下:
<settings>
  ...
  <mirrors>
    <mirror>
      <id>internal-repository</id>
      <name>Maven Repository Manager running on repo.mycompany.com</name>
      <url>http://repo.mycompany.com/proxy</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
  </mirrors>
  ...
</settings>
高级配置
mirrorOf还支持更高级的语法,示例如下:
| 值 | 作用 | 
|---|---|
| * | 匹配所有仓库 | 
| external:* | 匹配所有仓库,除了localhost仓库和基于文件的仓库 | 
| repo,repo1 | 匹配repo,repo1两个仓库 | 
| *,!repo1 | 匹配所有仓库,处理repo1 | 
常见用法
假设项目的pom中的仓库配置如下:
<repositories>
    <repository>
        <id>central</id>
        <url>https://repo1.maven.org/maven2</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>cloudera.repo</id>
        <url>https://repository.cloudera.com/artifactory/cloudera-repos</url>
        <name>Cloudera Repo</name>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>hortonworks.repo</id>
        <url>https://repo.hortonworks.com/content/repositories/releases</url>
        <name>Hortonworks Repo</name>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>
用法一
使用阿里云maven镜像替换central仓库,其他不变,配置如下:
<settings>
  ...
  <mirrors>
    <mirror>
      <id>aliyunmaven</id>
      <name>Aliyun Maven</name>
      <url>https://maven.aliyun.com/repository/public</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>
  ...
</settings>
用法二
除了cloudera.repo和hortonworks.repo,都使用阿里云镜像,配置如下:
<settings>
  ...
  <mirrors>
    <mirror>
      <id>aliyunmaven</id>
      <name>Aliyun Maven</name>
      <url>https://maven.aliyun.com/repository/public</url>
      <mirrorOf>*,!cloudera.repo,!hortonworks.repo</mirrorOf>
    </mirror>
  </mirrors>
  ...
</settings>
参考:https://maven.apache.org/guides/mini/guide-mirror-settings.html
到此这篇关于Maven仓库镜像配置的方法实现的文章就介绍到这了,更多相关Maven仓库镜像配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
