Spring-FrameWork源码搭建
本地环境为idea2022.1,jdk17,gradle7.4.1
1.上gitHub上拉取源码
git地址为:https://github.com/spring-projects/spring-framework.git
在本地建立好项目目录:
如下图所示,因为我已经下过了,所以就不下了
2.在idea(我使用的环境为idea2022.1)中打开此项目选择gradle的方式![在这里插入图片描述](https://img-blog.csdnimg.cn/b596738cc57d4f36ac6a5e6aae27b82b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aWL5paX55qE5bCP6I-c6I-c,size_17,color_FFFFFF,t_70,g_se,x_16)
3.查看源码中使用的gradle版本
在源码根目录下:gradle/wrapper/gradle-wrapper.properties
根据这个路径为了在编译过程中不下载直接在谷歌浏览器上进行打开即可下载(具体版本要以源码给的为准):
输入路径为:https://services.gradle.org/distributions/gradle-7.4.1-bin.zip
4.安装gradle
(1)下载完毕进行gradle安装 解压即可
我当前解压目录为:D:\java\gradle-7.4.1-bin\gradle-7.4.1
(2)建立依赖存放目录:
gradle同maven类似建立个文件夹为:D:\java\gradle-repository (用于存放下载的依赖)
(3)配置环境变量:
配置GRADLE_HOME
配置GRADLE_USER_HOME
配置path:%GRADLE_HOME%\bin
检查是否配置正确
(5)修改gradle的配置文件:
路径在安装的gradle根目录:D:\java\gradle-7.4.1-bin\gradle-7.4.1\init.d
建立配置文件名称为:init.gradle
内容:
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配置
修改jdk版本为17
修改gradel配置
6.修改Spring配置文件
根目录:build.gradle
在
resolutionStrategy {
cacheChangingModulesFor 0, “seconds”
}
下添加:
//新增两个阿里云配置
mavenLocal()
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/'}
maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
maven { url 'https://plugins.gradle.org/m2/'}
maven { url 'https://maven.aliyun.com/nexus/content/repositories/google' }
mavenCentral()
maven { url "https://repo.spring.io/libs-spring-framework-build" }
maven { url "https://repo.spring.io/milestone"}
maven { url "https://repo.spring.io/plugins-release"}
maven { url "https://repo.springsource.org/plugins-release" }
maven { url 'https://developer.huawei.com/repo/' }
根目录:settings.gradle
根目录:gradle/wrapper/gradle-wrapper.properties