AndroidStudio maven jcenter google 等仓库配置国内镜像

前言

一,单个项目生效

二,对所有项目生效

其他相关知识

Maven

Maven 仓库

jcenter


前言

最近在使用Androidstudio从jcenter,google,maven等仓库下载依赖jar的时候,出现下载不了,偶尔能下载,但是很慢;这里推荐使用国内阿里的镜像仓库。

阿里的镜像仓库:
https://maven.aliyun.com/mvn/view

官方使用指南:
https://help.aliyun.com/document_detail/102512.html?spm=a2c40.aliyun_maven_repo.0.0.361830549jTnxB

一,单个项目生效

在项目级别的build.gradle中添加阿里的Maven地址

buildscript {
    repositories {
        maven{ url'http://maven.aliyun.com/nexus/content/groups/public' }
       
//        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        maven{ url'http://maven.aliyun.com/nexus/content/groups/public' }
       
//        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

如果想使用maven.aliyun.com提供的其它代理仓,例如google仓库

buildscript {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/public' }
        maven { url 'https://maven.aliyun.com/repository/google' }
//        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

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

task clean(type: Delete) {
    delete rootProject.buildDir
}

注意:

https://maven.aliyun.com/repository/public和http://maven.aliyun.com/nexus/content/groups/public指向同一个存储库,只是两种写法而已;

二,对所有项目生效

C:\Users\用户名\.gradle(例如:C:\Users\Administrator\.gradle)文件夹下新建文件init.gradle文件

allprojects{
    repositories {
        def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public'
        def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/repository/jcenter'
        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
                }
                if (url.startsWith('https://jcenter.bintray.com/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
                    remove repo
                }
            }
        }
        maven {
            url ALIYUN_REPOSITORY_URL
            url ALIYUN_JCENTER_URL
        }
    }
}

其他相关知识

Maven

Maven 翻译为"专家"、"内行",是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。

Maven 仓库

在 Maven 的术语中,仓库是一个位置(place)。

Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。

在 Maven 中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。

Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方。

Maven 仓库有三种类型:

本地(local)

中央(central) 要浏览中央仓库的内容,maven 社区提供了一个 URL:http://search.maven.org/#browse

远程(remote)

jcenter

就是一个由 bintray.com维护的Maven仓库。

整个仓库的内容:http://jcenter.bintray.com/

你可能感兴趣的:(Tool)