大家好,我是阿Q!春节期间,有个小伙伴私信我,说想研究Spring的源码,让我出一个在IDEA中实现Spring源码导入的教程。今天来啦~版本:IDEA2020.2.3;春季5.0.x;等级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{defREPOSITORY_URL='http://maven.aliyun.com/nexus/content/groups/public/'all{ArtifactRepositoryrepo->if(repoinstanceofMavenArtifactRepository){defurl=repo.url.toString()if(url.startsWith('https://repo1.maven.org/maven2/')||url.startsWith('https://jcenter.bintray.com/')){project.logger.lifecycle“存储库${repo.url}替换为$REPOSITORY_URL。”removerepo}}}maven{urlREPOSITORY_URL}}}打开spring-framework-5.0.x下的git窗口,执行如下命令/gradlew:spring-oxm:compileTestJava该命令的作用是将spring转成IDEA工程可以导入的结构。如果你新开一个Windowsdos窗口,首先进入源码目录文件夹,在IDEA中不添加之前的./configuregradle执行命令,使用File->open将Spring项目导入IDEA,等待jar下载到完全的。遇到报错信息:在build.gradle中添加maven{url"http://maven.aliyun.com/nexus/content/groups/public"},目的是替换成国内镜像(init.gradle有时不生效)编译时报错如下:原因是gradle和gradle插件的版本太旧,更换高版本可以解决,不过这个问题只是提醒一下并且不影响编译。在测试包中随机找一个单元测试,运行成功。以上就是今天的全部内容。
