android studio gradle国内代理设置
android studio在开始都各项目之前都会遇到 gradle 的同步,而在同步过程中很多依赖下载特别慢甚至出现无法现在的情况,有的时候等的时间特别长,甚至要一天,关键是等了大半天之后突然报错,很是烦人,不仅浪费时间,还啥也没干成,比如说,Gradle下载center.bintray.com 下的一些包时经常出现连接超时(Connection timeout)的情况,以至于Gradle同步失败,项目无法构建。下面呢有两种方法,一种是国内的代理,利用阿里源,这个还是比较快的,另一个呢,就是使用shadsocks 代理,这种办法比使用国内代理要慢多了(嗯,其实也不能这样说,关键是看网速的问题了),我有一次是在晚上搞,使用的就是shadsocks代理,速度也是相当的慢,晚上毕竟在高峰期。下面就介绍用国内代理Gradle 进行sync。本人也是比较推荐这种方法的,这种方法大部分的问题还是都可以解决的。
一、是改settings.xml文件:
emm.....简单介绍一下用到的settings.xml文件: 如果想要深入了解settling.xml请看这篇文章,介绍的还是满详细的:https://www.cnblogs.com/soupk/p/9303611.html
1.setting.xml文件作用:
它是用来设置Maven参数的配置文件。并且,settings.xml是Maven的全局配置文件。settings.xml中包含类似本地仓库、远程仓库和联网使用的代理信息等配置。
2、settings.xml文件位置:
settings.xml文件一般存在于Maven的安装目录的conf子目录下面,或者是用户目录的.m2子目录下面。
3、配置的优先级:
其实相对于多用户的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,那么问题就来了怎么改呢 ?
二、修改settling.xml文件添加mirrors
先介绍一下mirrors:
mirrors作用:
用于定义一系列的远程仓库的镜像。我们可以在pom中定义一个下载工件的时候所使用的远程仓库。但是有时候这个远程仓库会比较忙,所以这个时候人们就想着给它创建镜像以缓解远程仓库的压力,也就是说会把对远程仓库的请求转换到对其镜像地址的请求。每个远程仓库都会有一个id,这样我们就可以创建自己的mirror来关联到该仓库,那么以后需要从远程仓库下载工件的时候Maven就可以从我们定义好的mirror站点来下载,这可以很好的缓解我们远程仓库的压力。在我们定义的mirror中每个远程仓库都只能有一个mirror与它关联,也就是说你不能同时配置多个mirror的mirrorOf指向同一个repositoryId。
下面我们就在Maven配置文件setting.xml中配置Mirror标签,在mirrors下面添加mirrors标签并添加详解:
<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>
三、配置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:遇到的问题及解决;
1、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()
}
}
2、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' }
android studio gradle国内代理设置的更多相关文章
- android studio gradle 国内代理
使用阿里云的国内镜像仓库地址,就可以快速的下载需要的文件 修改项目根目录下的文件 build.gradle : buildscript { repositories { maven{ url 'htt ...
- Android Studio Gradle 缓存目录设置
======================================================== 笔者:qiujuer 博客:blog.csdn.net/qiujuer 站点:www. ...
- Android Studio 使用socks代理
Android Studio 使用socks代理 准备工作 1. 从https://www.privoxy.org/下载Privoxy软件 2. 安装Privoxy 3. 在Privoxy安装目录找到 ...
- Android studio gradle配置完整版(转)
Android studio gradle配置完整版https://my.oschina.net/u/1471093/blog/539075 Android studio 自定义打包apk名 - pe ...
- android studio 配置网络代理
1.首先在vultr网站购买服务器. 然后使用shadowsocksR给服务器配置FQ,再在本地机器配置好shadowsocksR. 参考网址:https://github.com/getlanter ...
- Android studio配置国内镜像源
Android studio配置国内镜像源 不使用镜像也是可以的,据说谷歌在中国搭建了服务器 如果直接使用有问题,不妨使用镜像试试.有自动探测代理配置和手动代理配置. https://blog.csd ...
- [转]加速Android Studio/Gradle构建
加速Android Studio/Gradle构建 android android studio gradle 已经使用Android Studio进行开发超过一年,随着项目的增大,依赖库的增多, ...
- 解决Android Studio Gradle Build Running慢的问题
Android Studio方便好用,但是Android Studio Gradle Build Running很慢 解决方法: C:\Users\你的用户名\.gradle 目录下新建一个文件名为 ...
- Android studio gradle 打包 那些事
总结了一下 目前觉得比较好用的gradle 和一些打包 经验.放在这里. 首先说下 渠道号 这个概念,我们经常会统计我们的api 访问来源 是来自于那个app store,这有利于 我们针对性的推广. ...
随机推荐
- 重构drf项目后的manage.py报错的问题
Python3.6 用Django连接mysql一直报错django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer ...
- 《数据结构与算法之美》 <04>链表(上):如何实现LRU缓存淘汰算法?
今天我们来聊聊“链表(Linked list)”这个数据结构.学习链表有什么用呢?为了回答这个问题,我们先来讨论一个经典的链表应用场景,那就是 LRU 缓存淘汰算法. 缓存是一种提高数据读取性能的技术 ...
- php curl请求接口并获取数据
当我们在做php开发的时候,很多时候需要对接口进行测试,或者更方便的调用一些已有模块的接口,取到结果并进行后续操作,我们可以通过curl进行模拟提交post和get请求,来去实现这些功能. 下面是对c ...
- 【转】Elastic-Job
https://www.cnblogs.com/yushangzuiyue/p/9655847.html 什么是Elastic-Job Elastic-Job是当当网大牛基于Zookepper,Qua ...
- go语言defer关键字背后的实现,语法,用法
原文: https://tiancaiamao.gitbooks.io/go-internals/content/zh/03.4.html ------------------------------ ...
- javaweb的maven项目结构
本来准备看javaweb的项目结构,因为之前自己建maven的项目结构,总是各种出错,后来干脆用maven自己携带的项目结构. 一个最基本的web目录结构如下,红框部分为必须有的,其他的随意. 这是一 ...
- 【翻译】PATH究竟是什么?
最近,我试图向一个朋友解释他电脑上PATH变量是用来做什么的.我在我们所交流的平台‘the Slack group"写了一篇比较长的消息之后,我意识到这个主题可以写成一个很好的博客,所以开始 ...
- position:absolute 按钮左右分布:left:0 和 right:0 以及雪碧图
问题:把两个a标签按钮 垂直居中,并且分别把两个按钮放在水平左右两边顶部1,祖父元素设定:position:relative2,把.arrow 设定上下垂直居中 position:absolute; ...
- The Preliminary Contest for ICPC Asia Xuzhou 2019 【 题目:so easy】{并查集维护一个数的下一个没有被删掉的数} 补题ING
题意:给[1,n],n个数,有两种操作: 1 x,删去x2 x,查询还未被删去的数中大于等于x的最小的数是多少. input: output: 做法:按照并查集的方法压缩路径 代码: #include ...
- HR# 5题解
T1 我傻了 前20个数暴力开桶记录,后面的每次暴力统计. #include<bits/stdc++.h> #define R register int using namespace s ...