Gradle.zip 下载代理
项目gradle包名下,wrapper包下有两个文件,其中 gradle-wrapper.properties
文件记录了当前项目要使用的gradle版本
腾讯有关于gradle的镜像,阿里应该也有,就先拿腾讯的来当例子了
#Mon Mar 25 16:05:28 CST 2024
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
// distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-8.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
官方源码 全局的代理
解决下载官方库缓慢和失败的情况,官方的一般都在 google()
、 、jcenter()
mavenCentral()
中。这里使用 阿里的代理
单个使用很简单,将上说的那些换成阿里的即可:
// jcenter 的代替
maven {
url "https://maven.aliyun.com/repository/public/"
}
// mavenCentral 的代替
maven {
url "https://maven.aliyun.com/repository/central"
}
// google 的代替
maven {
url "https://maven.aliyun.com/repository/google/"
}
注意:要将 allprojects
和 buildscript
的都换了;在 gradle7.0 后没有了 allprojects
,给迁移到 setting.gradle 文件中。
全局替换:在 .gralde
根目录创建 init.gradle
文件,写入
allprojects{
repositories {
def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public'
def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/repository/public'
def ALIYUN_GOOGLE_URL = 'https://maven.aliyun.com/repository/google'
def ALIYUN_GRADLE_PLUGIN_URL = 'https://maven.aliyun.com/repository/gradle-plugin'
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
}
if (url.startsWith('https://dl.google.com/dl/android/maven2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GOOGLE_URL."
remove repo
}
if (url.startsWith('https://plugins.gradle.org/m2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GRADLE_PLUGIN_URL."
remove repo
}
}
}
maven { url ALIYUN_REPOSITORY_URL }
maven { url ALIYUN_JCENTER_URL }
maven { url ALIYUN_GOOGLE_URL }
maven { url ALIYUN_GRADLE_PLUGIN_URL }
}
}
Android SDK 下载代理配置
因为google被墙,导致 Android studio 使用 SDK 的难度直线上升,网上也有很多配置的办法,就连 Android Studio 都给出来了一个 Http Proxy
来代理,但是都不是特别的好使,今天发现一个好使的办法,而且非常的简单,特此记录一下。
SDK 的下载都是在 dl.google.com
域名下下载的,而墙的也好像只是这个域名,所以只要设置一下host就可以愉快的使用了:
- 使用 ping检测 来查一下
dl.google.com
的ip地址 - 将查到的ip地址,设置到hosts中,就完成了。
如果有设置 Http Proxy 的话,将其关闭才可以使用,Android Studio中不见得可以完全的关闭,可以在全局或项目 gradle.properties 中查看是否有 proxy 设置,将其删除。
Ps: 据说 github 也可以使用这种方式快速访问
mac 设置host
- 打开终端,输入命令
sudo vi /etc/hosts
打开hosts文件 - 输入
i
进入编辑模式 - 输入想要的host配置,比如
203.208.40.33 dl.google.com
- 点击
esc
退出编辑模式 - 输入命令
:wq
终端关闭该文件
题外话:全局的 gradle.properties
为什么要设置全局的 gradle.properties
呢,有时候需要将项目打包并发布用到了账号,一般都是把账号信息放入到 gradle.properties
中,那每一个项目都要在项目中的 gradle.properties
写一遍也挺烦的,就想着可不可以全局设置,然后还真找到了。
- 首先是找到.gradle根目录
- mac 都是在users目录下,是隐藏起来的,可以通过 shift + com + . 来显示
- window 一般都在c盘的里面,手上没有wiodows,等确定了再补充
- 在该目录创建
gradle.properties
,有时候因为有配置什么全局的,可能已经有了,就可以直接写入(嫌创建麻烦,可以将项目中的同名文件复制进去,再删除内容即可)。 - 写入想要的公共信息,比如:
USERNAME=XXXX
PASSWORD=****
isTest = true
- 使用(不管是在项目根目录还是哪里都是一样的使用方式):
buildscript {
ext.kotlin_version = "1.3.72"
// 跟kotlin用法很相似呢
println("--------------$USERNAME")
println("--------------${USERNAME}")
println("--------------${USERNAME.startsWith("ext")}")
if (isTest) {
println("--------------aaaa")
}
repositories {
// ...
}
}
// 运行结果为
--------------XXXX
--------------XXXX
--------------false
--------------aaaa