哈喽大家好,我是阿Q!
春节期间,有小伙伴私信我说想要研究下Spring
的源码,想让我出一期教程来实现IDEA
导入Spring
源码,今天它来了~
版本 :IDEA 2020.2.3 ;Spring 5.0.x ;gradle 4.4.1 ;
先从github
上面把 spring
源码下载下来并解压:
切记:解压完成后不要直接用
IDEA
打开,因为Spring
的源码是用gradle
构建的。如果已经用IDEA
打开了请删除后重新解压。
我们找到文件夹
spring-framework-5.0.xgradlewrapper
下的 gradle-wrapper.properties
文件,查看里边的 gradle
版本,去官网下载。
下载完成之后把 gradle
的环境变量配置一下,可以用gradle -version
来验证 gradle
是否配置成功
在 USER_HOME/.gradle/
下面新建 init.gradle
文件,将国外源换成国内镜像
allprojects {
repositories {
def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if(url.startsWith('https://repo1.maven.org/maven2/')||url.startsWith('https://jcenter.bintray.com/')){
project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
remove repo
}
}
}
maven {
url REPOSITORY_URL
}
}
}
在 spring-framework-5.0.x
下打开git
的窗口执行以下命令
./gradlew :spring-oxm:compileTestJava
该命令的作用是将 spring
转成IDEA
可以导入的工程结构。
如果你新开的
Windows
的dos
窗口,先进入源码的目录文件夹,执行命令不用加前面的./
配置 IDEA
中的 gradle
使用 File -> open
把 Spring
工程导入到 IDEA
中,并等待 jar
下载完成。
如遇报错信息:
在 build.gradle
中添加
maven { url "http://maven.aliyun.com/nexus/content/groups/public"}
其目的就是为了换成国内的镜像(init.gradle
有时没有生效)
编译时报错如下:
原因是 gradle
和 gradle
插件版本过旧,更换更高的版本可以解决,但这个问题只是提示,不影响编译。
在 test
包中随便找了一个单元测试运行,成功运行
以上就是今天的全部内容了。