zoukankan      html  css  js  c++  java
  • Maven、Gradle 配置国内镜像源

    Maven

    全局配置

    修改 Maven 默认的全局配置文件:

    • 类 Unix 系统: Mac OS / Linux 默认在 ~/.m2/settings.xml
    • Windows 系统:一般在 Maven 安装目录的 conf/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">
    
        <!-- 添加以下这段 Mirror 配置 -->
        <mirrors>
            <!-- Aliyun -->
            <mirror>
                <id>aliyunmaven</id>
                <name>aliyun maven</name>
                <mirrorOf>*</mirrorOf>      
                <url>https://maven.aliyun.com/repository/public</url>
            </mirror>
        </mirrors>
    
    
    </settings>

    单项目配置

    修改项目的 pom.xml,添加以下内容:

    <repositories>
        <repository>
            <id>aliyunmaven</id>
            <url>https://maven.aliyun.com/repository/public</url>
        </repository>
    </repositories>

    Gradle

    全局配置

    ${USER_HOME}/.gradle/ 目录下创建 init.gradle 文件,添加以下内容:

    allprojects {
        repositories {
            def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public'
            all { ArtifactRepository repo ->
                if(repo instanceof MavenArtifactRepository){
                    def url = repo.url.toString()
                    if (url.startsWith('https://repo1.maven.org/maven2')) {
                        project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
                        remove repo
                    }
                }
            }
            maven { url ALIYUN_REPOSITORY_URL }
        }
    }

    单项目配置

    修改项目的 build.gradle 文件,添加以下内容:

    buildscript {
        repositories {
            maven { url 'https://maven.aliyun.com/repository/public' }
        }
    }
    
    allprojects {
        repositories {
            maven { url 'https://maven.aliyun.com/repository/public' }
        }
    }

    也可以直接添加在 repositories 内:

    repositories {
        maven { url 'https://maven.aliyun.com/repository/public' }
        mavenCentral()
    }

    其他仓库

    在上面的配置中,我们主要配置的是 public 仓库,而 阿里云: https://maven.aliyun.com 除此之外,还代理了许多其他的仓库,可作为下载源。如 google、spring 等(更多可点进链接查看详情)。

    而我们常用的 public 仓库,其实是 central: https://repo1.maven.org/maven2/ 仓库和 jcenter: http://jcenter.bintray.com/ 仓库的聚合,所以配置了 public 仓库,就不需要再配置 jcenter 的仓库了。

    若需要使用其他的代理仓库,如 google、spring,可参考以下配置:

    Maven

    全局配置

    同上,修改 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>
            <!-- Aliyun -->
            <mirror>
                <id>alimaven-public</id>
                <name>aliyun public maven repo</name>
                <url>https://maven.aliyun.com/repository/public</url>
                <mirrorOf>*</mirrorOf>
            </mirror>
    
            <mirror>
                <id>alimaven-google</id>
                <name>aliyun google maven repo</name>
                <url>https://maven.aliyun.com/repository/google</url>
                <mirrorOf>*</mirrorOf>
            </mirror>
    
            <mirror>
                <id>alimaven-spring</id>
                <name>aliyun spring maven repo</name>
                <url>https://maven.aliyun.com/repository/spring</url>
                <mirrorOf>*</mirrorOf>
            </mirror>
    
            <!-- Tencent Cloud -->
            <!-- <mirror>
                <id>nexus-tencentyun</id>
                <mirrorOf>*</mirrorOf>
                <name>Nexus tencentyun</name>
                <url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
            </mirror> -->
    
            <!-- Netease 163 -->
            <!-- <mirror>
                <id>netease</id>
                <mirrorOf>*</mirrorOf>
                <name>Netease maven</name>
                <url>http://mirrors.163.com/maven/repository/maven-public/</url>
            </mirror> -->
        </mirrors>
    
    
    </settings>

    单项目配置

    修改 pom.xml:

    <repositories>
        <repository>
            <id>aliyunmaven-google</id>
            <name>aliyun google maven repo</name>
            <url>https://maven.aliyun.com/repository/google</url>
            <layout>default</layout>
            <!-- 是否开启 release 版构件下载 -->
            <releases>
                <enabled>true</enabled>
            </releases>
            <!-- 是否开启 snapshot 版构件下载 -->
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>aliyunmaven-spring</id>
            <name>aliyun spring maven repo</name>
            <url>https://maven.aliyun.com/repository/spring</url>
        </repository>
    </repositories>

    是否开启 releases、snapshots 版下载可根据自身需求调整。

    Gradle

    全局配置

    allprojects {
        repositories {
            def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public'
            def ALIYUN_GOOGLE_URL = 'https://maven.aliyun.com/repository/google'
            all { ArtifactRepository repo ->
                if(repo instanceof MavenArtifactRepository){
                    def url = repo.url.toString()
                    if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com')) {
                        project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
                        remove repo
                    }
                    if (url.startsWith('https://dl.google.com/dl/android/maven2')) {
                        project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GOOGLE_URL."
                        remove repo
                    }
                }
            }
            maven { url ALIYUN_REPOSITORY_URL }
            maven { url ALIYUN_GOOGLE_URL }
        }
    }

    单项目配置

    修改 `build.gradle`:

    buildscript {
        repositories {
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/spring' }
        }
    }
    
    allprojects {
        repositories {
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/spring' }
        }
    }

    其他镜像源

    腾讯云

    https://mirrors.cloud.tencent.com

    参考配置:

    Maven

     <mirror>
         <id>nexus-tencentyun</id>
         <mirrorOf>*</mirrorOf>
         <name>Nexus tencentyun</name>
         <url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
     </mirror> 
    <repositories>
        <repository>
            <id>nexus-tencentyun</id>
            <name>Nexus tencentyun</name>
            <url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
        </repository>
    </repositories>

    Gradle

    buildscript {
        repositories {
            maven { url 'http://mirrors.cloud.tencent.com/nexus/repository/maven-public/' }
        }
    }
    
    allprojects {
        repositories {
            maven { url 'http://mirrors.cloud.tencent.com/nexus/repository/maven-public/' }
        }
    }

    FAQ

    Q: 为什么你配置里用的 URL 都是 https://maven.aliyun.com/repository/public,而我看其他的人/文章,都用的是 http://maven.aliyun.com/nexus/content/groups/public 呢?

    A: 阿里云在前几年对 https://maven.aliyun.com 进行了代码和架构上的改造,新版的 https://maven.aliyun.com 下载速度更快,支持高并发,而且全站进行了 HTTPS 加密,更安全。而新版的 Maven Mirror 地址,就是 https://maven.aliyun.com/repository/{reponame},然而阿里云为了保持旧地址的兼容,所以旧地址依然可以使用,但推荐使用新地址。

    更多详情可参考: https://yq.aliyun.com/articles/621196?commentId=21341

  • 相关阅读:
    四则运算 2
    《你的灯亮着吗》读后感 (前两篇)
    四则运算设计思路
    读书目标
    课堂总结
    人月神话感想
    软件工程概论11
    软件工程概论10
    bnu——GCD SUM (莫比乌斯反演)
    POJ1108_Split Windows 解题报告
  • 原文地址:https://www.cnblogs.com/chansblogs/p/12943991.html
Copyright © 2011-2022 走看看