android studio gradle国内代理设置

   android studio在开始都各项目以前都会遇到 gradle 的同步,而在同步过程当中不少依赖下载特别慢甚至出现没法如今的状况,有的时候等的时间特别长,甚至要一天,关键是等了大半天以后忽然报错,非常烦人,不只浪费时间,还啥也没干成,好比说,Gradle下载center.bintray.com 下的一些包时常常出现链接超时(Connection timeout)的状况,以致于Gradle同步失败,项目没法构建。下面呢有两种方法,一种是国内的代理,利用阿里源,这个仍是比较快的,另外一个呢,就是使用shadsocks 代理,这种办法比使用国内代理要慢多了(嗯,其实也不能这样说,关键是看网速的问题了),我有一次是在晚上搞,使用的就是shadsocks代理,速度也是至关的慢,晚上毕竟在高峰期。下面就介绍用国内代理Gradle 进行sync。本人也是比较推荐这种方法的,这种方法大部分的问题仍是均可以解决的。html

  1、是改settings.xml文件:android

   emm.....简单介绍一下用到的settings.xml文件:  若是想要深刻了解settling.xml请看这篇文章,介绍的仍是满详细的:http://www.javashuo.com/article/p-ujukdjbr-mu.htmlapache

      1.setting.xml文件做用:

      它是用来设置Maven参数的配置文件。而且,settings.xml是Maven的全局配置文件。settings.xml中包含相似本地仓库、远程仓库和联网使用的代理信息等配置。api

      二、settings.xml文件位置:

       settings.xml文件通常存在于Maven的安装目录的conf子目录下面,或者是用户目录的.m2子目录下面。服务器

      三、配置的优先级:

      其实相对于多用户的PC机而言,在Maven安装目录的conf子目录下面的settings.xml才是真正的全局的配置。而用户目录的.m2子目录下面的settings.xml的配置只是针对当前用户的。当这两个文件同时存在的时候,那么对于相同的配置信息用户目录下面的settings.xml中定义的会覆盖Maven安装目录下面的settings.xml中的定义。用户目录下的settings.xml文件通常是不存在的,可是Maven容许咱们在这里定义咱们本身的settings.xml,若是须要在这里定义咱们本身的settings.xml的时候就能够把Maven安装目录下面的settings.xml文件拷贝到用户目录的.m2目录下,而后改为本身想要的样子,总之一句话。就是改Maven安装目录的conf子目录下面的settings.xml,那么问题就来了怎么改呢 ?maven

  2、修改settling.xml文件添加mirrors

    先介绍一下mirrors:gradle

     mirrors做用:ui

     用于定义一系列的远程仓库的镜像。咱们能够在pom中定义一个下载工件的时候所使用的远程仓库。可是有时候这个远程仓库会比较忙,因此这个时候人们就想着给它建立镜像以缓解远程仓库的压力,也就是说会把对远程仓库的请求转换到对其镜像地址的请求。每一个远程仓库都会有一个id,这样咱们就能够建立本身的mirror来关联到该仓库,那么之后须要从远程仓库下载工件的时候Maven就能够从咱们定义好的mirror站点来下载,这能够很好的缓解咱们远程仓库的压力。在咱们定义的mirror中每一个远程仓库都只能有一个mirror与它关联,也就是说你不能同时配置多个mirror的mirrorOf指向同一个repositoryId。google

    下面咱们就在Maven配置文件setting.xml中配置Mirror标签在mirrors下面添加mirrors标签并添加详解:url

<mirrors>
  <!--该镜像的惟一标识符,id用来区分不一样的mirros元素。--> <mirror> <id>alimaven</id>
     <!--镜像名称。--> <name>aliyun maven</name>
     <!--该镜像的URL。构建系统会优先考虑使用该URL,而非使用默认的服务器URL。--> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <!--被镜像的服务器的id。例如,若是咱们要设置了一个maven中央仓库(http://repo.maven.apache.org/maven2)的镜像,就须要将该元素设置成central。这必须和中央仓库的id central彻底一致-->
     <mirrorOf>central</mirrorOf> </mirror> </mirrors>

  3、配置Gradle:

       在build.gradle中做以下配置,添加Maven仓库地址    

buildscript {
    repositories {
        google()
        //jcenter()  //可直接删除
        maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
    }
}

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

  最近构建项目时老是遇到jcenter仓库中多个jar文件没法下载的状况,因此若是你有相似状况的话能够直接删除jcenter仓库,(就算没有遇到这样的状况也能够删除,阿里的Maven镜像仓库下载依赖要快得多,若是不删除的话,建议将Maven仓库配置在jcenter以前,这样的话,找依赖会优先用配置的Maven仓库)

 

 

PS:遇到的问题及解决;

一、Could not find org.jetbrains.kotlin:kotlin-stdlib:1.1.3-2.
    Searched in the following locations:
    https://dl.google.com/dl/android/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.1.3-2/kotlin-stdlib-1.1.3-2.pom
    https://dl.google.com/dl/android/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.1.3-2/kotlin-stdlib-1.1.3-2.jar
    Required by:
    project : > com.android.tools.build:gradle:3.0.1 > 

 

解决办法: 在两个repositories中加上相应代码 (  mavenCentral()  )

buildscript {
    allprojects {
        repositories {
            google()
            jcenter()
            mavenCentral() 
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
    }
    repositories {
        jcenter()
        mavenCentral()
        google()
    }
}

 二、google()和jcenter()是被墙的,而   http://maven.aliyun.com/nexus/content/groups/public/   并不包括的google() & jcenter(),若是不用它们就会出现卡住的状况.......可是阿里提供的镜像包括了Google和Jcenter:http://maven.aliyun.com/mvn/view 可是若是我这样用:

google(){ url 'https://maven.aliyun.com/repository/google' }

是会报错的:

Could not find method google() for arguments [build_481dup0nhfy99x57ko80vlobp$_run_closure1$_closure2$_closure5@7388ff6f] on repository container of type org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler.

 

  解决办法:有多少个加多少个就好了,放在google()前面:

maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven{ url 'https://maven.aliyun.com/repository/google' }
相关文章
相关标签/搜索