某些旧的gradle配置失效的原因在于“2021年2月3日,JFrog宣布将关闭Bintray和JCenter。计划在2022年2月完全关闭。”
网上的绝大部分init.gradle 配置已经过时,对于学习spring源码的同学来说,造成了误导,其实主要是本身对gradle不了解,毕竟大家绝大部分是从用maven过来的。
1.spring源码从github或者gittee clone或者下载zip都行
2.导入idea后,idea会基于源码中的构建脚本自动下载脚本中指定的版本,右下角进度条,点击取消,下一步配置自己的本地版本
3.配置自己的自定义设置,gradle_user_home 可以默认,也可以自定义,影响不大,可以类比成maven 本地仓库,默认的话,gradle下载的依赖就在C:Users账号.gradle中了
user gradle home这个记得改,改成你本地下载的任意版本gradle安装目录
4.在安装目录里面的init.d 文件中,添加全局初始化配置。
allprojects{
repositories {
def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public/'
//很多旧的攻略保留了这个,导致去阿里jcenter下载,但是又没有对于版本,报错了,直接用maven仓地址,反正全有,不知道原有的,很多在构建最后阶段报错,提示下载不到几个关键jar包,为了说明问题我把注释的也保留
//def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/repository/jcenter/'
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
}
//注意,此处也改成阿里云maven仓,
if (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
}
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 }
}
}
5.配置完之后,idea可能缓存原因,并没有采用自定义配置。
idea files/invalidate caches。重启后,自动采用自定义配置,构建spring源码了



