春节期间,有小伙伴私信我说想要研究下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.x\gradle\wrapper
下的 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 包中随便找了一个单元测试运行,成功运行
以上就是今天的全部内容了。