Spring源码完美导入IDEA的过程
小伙伴私信我说想要研究下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 包中随便找了一个单元测试运行,成功运行

以上就是今天的全部内容了。
到此这篇关于Spring源码 完美导入 IDEA的过程的文章就介绍到这了,更多相关Spring导入 IDEA内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
通过Spring Boot配置动态数据源访问多个数据库的实现代码
这篇文章主要介绍了通过Spring Boot配置动态数据源访问多个数据库的实现代码,需要的朋友可以参考下2018-03-03
Spring中的DefaultResourceLoader使用方法解读
这篇文章主要介绍了Spring中的DefaultResourceLoader使用方法解读,DefaultResourceLoader是spring提供的一个默认的资源加载器,DefaultResourceLoader实现了ResourceLoader接口,提供了基本的资源加载能力,需要的朋友可以参考下2024-02-02
基于application和bootstrap的加载顺序及区别说明
这篇文章主要介绍了application和bootstrap的加载顺序及区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-07-07
利用ClasserLoader实现jar包加载并调用里面的方法
classloader即是类加载,虚拟机把描述类的数据从class字节码文件加载到内存,并对数据进行检验、转换解析和初始化,了解java的类加载机制,可以快速解决运行时的各种加载问题并快速定位其背后的本质原因,本文介绍了如何利用ClasserLoader来实现jar包加载并调用里面的方法2024-09-09


最新评论