Maven - 多镜像节点配置

应用场景

在使用单镜像节点配置时,例如使用阿里云的官方单节点镜像

<mirror>
    <id>aliyunmaven</id>
    <mirrorOf>*</mirrorOf>
    <name>阿里云公共仓库</name>
    <url>https://maven.aliyun.com/repository/public</url>
</mirror>

此时,如果出现某些依赖包不存在阿里云的 central 仓和 jcenter 仓中(public 是 central 仓和 jcenter 仓的聚合仓),则会发生依赖处理错误,无法顺利打包

而阿里云其实代理了多个仓库,当某些依赖包不存在于 public 仓时,可以去其他的仓库寻找,找到后成功导入依赖,则可以顺利打包

例如 org.pentaho:pentaho-aggdesigner-algorithm:jar:5.1.5-jhyde,因为该依赖包位于 spring-plugin 仓库中,根本不存在中央仓库中,因此使用 public 仓库是无法下载的,需要配置阿里云的 spring-plugin 仓库镜像

多镜像节点配置

根据阿里云官方代理仓库表

仓库名称 代理源地址 使用地址
central https://repo1.maven.org/maven2/ https://maven.aliyun.com/repository/centralhttps://maven.aliyun.com/nexus/content/repositories/central
jcenter http://jcenter.bintray.com/ https://maven.aliyun.com/repository/jcenterhttps://maven.aliyun.com/nexus/content/repositories/jcenter
public central仓和jcenter仓的聚合仓 https://maven.aliyun.com/repository/publichttps://maven.aliyun.com/nexus/content/groups/public
google https://maven.google.com/ https://maven.aliyun.com/repository/googlehttps://maven.aliyun.com/nexus/content/repositories/google
gradle-plugin https://plugins.gradle.org/m2/ https://maven.aliyun.com/repository/gradle-pluginhttps://maven.aliyun.com/nexus/content/repositories/gradle-plugin
spring http://repo.spring.io/libs-milestone/ https://maven.aliyun.com/repository/springhttps://maven.aliyun.com/nexus/content/repositories/spring
spring-plugin http://repo.spring.io/plugins-release/ https://maven.aliyun.com/repository/spring-pluginhttps://maven.aliyun.com/nexus/content/repositories/spring-plugin
grails-core https://repo.grails.org/grails/core https://maven.aliyun.com/repository/grails-corehttps://maven.aliyun.com/nexus/content/repositories/grails-core
apache snapshots https://repository.apache.org/snapshots/ https://maven.aliyun.com/repository/apache-snapshotshttps://maven.aliyun.com/nexus/content/repositories/apache-snapshots

对应配置 central、jcenter、google、spring 和 spring-plugin

注意,在多镜像节点配置的过程中,不能使用 <mirrorOf>*</mirrorOf> 配置,否则会导致其他节点配置无效

<!-- central -->
<mirror>
    <id>aliyunmaven-central</id>
    <mirrorOf>central</mirrorOf>
    <name>central</name>
    <url>https://maven.aliyun.com/repository/public</url>
</mirror>
<!-- jcenter -->
<mirror>
    <id>aliyunmaven-jcenter</id>
    <mirrorOf>jcenter</mirrorOf>
    <name>jcenter</name>
    <url>https://maven.aliyun.com/repository/public</url>
</mirror>
<!-- google -->
<mirror>
    <id>aliyunmaven-google</id>
    <mirrorOf>google</mirrorOf>
    <name>google</name>
    <url>https://maven.aliyun.com/repository/google</url>
</mirror>
<!-- spring -->
<mirror>
    <id>aliyunmaven-spring</id>
    <mirrorOf>spring</mirrorOf>
    <name>spring</name>
    <url>https://maven.aliyun.com/repository/spring</url>
</mirror>
<!-- spring-plugin -->
<mirror>
    <id>aliyunmaven-spring-plugin</id>
    <mirrorOf>spring-plugin</mirrorOf>
    <name>spring-plugin</name>
    <url>https://maven.aliyun.com/repository/spring-plugin</url>
</mirror>

配置完镜像,保存重启 IDE,再次导入 maven 即可完成

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。