《Java Spring框架》基于IDEA搭建Spring源码

时间:2023-03-09 20:10:04
《Java Spring框架》基于IDEA搭建Spring源码

第一步:

IDEA :IntelliJ IDEA 2018.1.4    ;JDK安装(必须1.8或者以上),IDEA安装(过程省略)。

第二步:

Gradle:下载地址:https://services.gradle.org/distributions/

《Java Spring框架》基于IDEA搭建Spring源码

Gradle版本要求高。3.X或者5.X都会导致构建Spring失败!推荐4.7,本人使用的4.10版本。

将下载的压缩包,解压到指定目录:例如:D:\SoftWare\gradle\gradle-4.10.1

配置环境变量:

新增一个GRADLE_HOME的变量。

《Java Spring框架》基于IDEA搭建Spring源码

然后在Path新增一段:

《Java Spring框架》基于IDEA搭建Spring源码

环境准备就绪。

源码准备

下载地址:https://github.com/spring-projects/spring-framework

《Java Spring框架》基于IDEA搭建Spring源码

下载最新版本;

将源码解压到指定目录:例如(D:\code\spring-framework-5.1.x);

执行gradlew.bat文件,双击即可。等待一段时间。

《Java Spring框架》基于IDEA搭建Spring源码

导入IDEA

《Java Spring框架》基于IDEA搭建Spring源码

选择自己安装的Gradle。一路下一步即可。

IDEA加载项目需要时间挺长的,本人花费近40分钟。

这个时候发现编译报错:

Error:Kotlin: [Internal Error] java.lang.IllegalStateException: The provided plugin org.jetbrains.kotlin.scripting.compiler.plugin.ScriptingCompilerConfigurationComponentRegistrar is not compatible with this version of compiler
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.<init>(KotlinCoreEnvironment.kt:181)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.<init>(KotlinCoreEnvironment.kt:117)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$Companion.createForProduction(KotlinCoreEnvironment.kt:413)

更新下图插件:

《Java Spring框架》基于IDEA搭建Spring源码

继续编译报错:

D:\Code\shucheng\IntelliJIdeaProjects\sourceStudy\spring-framework\spring-core\src\main\java\org\springframework\cglib\core\SpringNamingPolicy.java
Error:(30, 41) java: 找不到符号
符号: 类 DefaultNamingPolicy
D:\Code\shucheng\IntelliJIdeaProjects\sourceStudy\spring-framework\spring-core\src\main\java\org\springframework\objenesis\SpringObjenesis.java
Error:(20, 50) java: 程序包org.springframework.objenesis.instantiator不存在
Error:(21, 46) java: 程序包org.springframework.objenesis.strategy不存在
Error:(22, 46) java: 程序包org.springframework.objenesis.strategy不存在
Error:(35, 41) java: 找不到符号
符号: 类 Objenesis
Error:(47, 23) java: 找不到符号
符号: 类 InstantiatorStrategy
位置: 类 org.springframework.objenesis.SpringObjenesis

解决方案:

《Java Spring框架》基于IDEA搭建Spring源码

《Java Spring框架》基于IDEA搭建Spring源码

找到这两个,双击执行即可。并不需要像各个文章一样,需要手工处理。

到这里Spring构建完成,可以看源码了。

参考:https://blog.csdn.net/u010999809/article/details/90444714