主要介绍
介绍自己在使用IDEA2020.2导入Spring5.1源码时,所遇到的问题和总结方法
内容概括
使用IDEA2020构建Spring5.1源码
环境 源码:spring5.1 jdk1.8 idea2020 :
- Spring源码 ,下载的是5.1版本;
- Jdk,jdk是1.8;
- IDEA,idea是使用2020.2;
Spring源码下载
Spring源码版本的选择和下载:
-
Spring源码的下载:在官网进行下载
-
Spring源码版本的选择:本文选择的版本是5.1版本 下载的是zip 建议选择zip下载 不要git clone(会很慢)
Gradle下载
gradle下载 需要选择符合spring源码的版本 :
-
gradle版本的选择 :通过查看下载下来spring的源码目录中的信息 进行gradle的下载 选择对应的版本进行下载(之前下载过比较高的版本,但是后续出了问题 所以这里建议下载对应的版本)
-
gradle下载地址:链接: https://services.gradle.org/distributions/
-
查看spring使用的gradle版本,这里将distributionUrl指向本地下载的gradle:不然在用idea打开spring源码的时候 还是会去下载这个gradle版本的。distributionUrl=file:///E:/JavaDownload/gradle-4.10.3-bin.zip (这里指向的是gradle的zip 不是解压之后的位置)
Gradle 全局配置 安装
window下,配置环境变量GRADLE_HOME和GRADLE_USER_HOME(存放下载jar 类似maven)
- GRADLE_USER_HOME 存放的是下载的jar包
- 在cmd命令下 输入 gradle -v 查看是否下载成功
配置对应的仓库
-
修改spring源码依赖的jar包的下载地址(会大大提升下载的速度 根据版本的不同 里面对应的内容也不一样 我参考几个地址 选择了适合我这个版本的地址配置 进行了修改),打开根目录下的build.gradle
-
第一处: 在文件的首行,修改后的配置如下:
repositories {
maven { url "https://maven.aliyun.com/repository/spring-plugin" }
maven{ url "https://maven.aliyun.com/nexus/content/repositories/spring-plugin"}
maven { url "https://repo.spring.io/plugins-release" }
}
- 第二处:大概在第150行,修改后的配置如下:
repositories {
maven { url "https://maven.aliyun.com/repository/central" }
maven { url "https://repo.spring.io/libs-release" }
mavenCentral()
}
构建源码
gradlew.bat
- 在spring源码根路径中找到 gradlew.bat 并在cmd窗口中运行(建议选择 gradle.bat 右键选择 以管理员身份运行) 当时选择这个文件夹 然后输入cmd进行运行 在cmd命令中输入gradle.bat运行 下载是失败的 这个原因不怎么清楚
导入idea
在spring项目中找到import-into-idea.md文件,打开后跟着step操作。
在根路径中执行gradlew :spring-oxm:compileTestJava:也就是cmd命令中输入 gradlew :spring-oxm:compileTestJava(过程比较缓慢 如果网速好的话 就很快 最后会显示build successful 此过程会有各种各样的错误 建议按上述的步骤进行下载 尤其是gradle的版本)
导入步骤
idea版本:IntelliJ IDEA 2020.2
这里第一次导入时可能需要手动停止,然后去设置这个idea的gradle本地仓库:idea会自动spring源码对应的gradle版本 我们自动选择删除即可 然后在idea中设置gradle
上述的两个配置就是GRADLE_HOME和GRADLE_USER_HOME指向的位置
导入成功
这里是导入成功之后的显示(导入时间较长)
编译
编译⼯程(顺序:core-oxm-context-beans-aspects-aop)
⼯程—>tasks—>others—>compileTestJava
新建spring-model【在项目上右击新建model】: build.gradle 内容进行修改**
参考内容
[1]https://www.jb51.net/article/197088.htm
[2]https://www.jb51.net/article/189140.htm