前言:
spring项目在开发中使用gradle进行项目自动化构建,所以在导入spring工程项目之前需要先安装gradle工具。
版本说明:
spring:spring-framework-4.3.x
gradle:gradle-4.10.2
jdk:jdk1.8.0_152
开发环境:IntelliJ IDEA 2017.3.5
操作系统:Windows 7
注:安装gradle的版本不要太高。事先选择gradle-5.6.1版本,在构建spring项目时会报错,分析原因是gradle版本兼容问题。
备注:spring-framework-4.3.x官方文档
1. 从gradle官网下载软件包
然后解压:
2. 配置gradle的环境变量
1)新增 GRADLE_HOME 环境变量,指向Gradle解压目录
2)配置Path环境变量:新增 %GRADLE_HOME%\bin
3)测试gradle是否安装成功
至此,gradle安装成功。
1. 下载spring源码,进行预编译
下载spring-framework-4.3.x源码并解压。源码解压后根据spring工程目录下说明文件import-into-idea.md对spring-oxm进行预编译操作。
(1)gradlew是包装器,执行gradlew会自动下载包装器里定义好的gradle版本,保证编译环境统一。
(2)gradlew clean 命令:清除工程目录下的build文件夹。
(3)compileTestJava:使用JDK编译器javac编译测试源文件
预编译花费时间比较长,其中可能会多次出现各种报错,需要多重试几次。过程中出现警告不用管,只要预编译成功即可。
2. IDEA导入spring源码,构建工程
弹出“Import Project from Gradle”对话框:
点击”OK“后,IDEA会自动执行项目根目录下的build.gradle文件,进行自动化构建spring源码。构建期间若出现异常(如下图),通过查找相关资料,分析是项目根目录下的build.gradle文件中的org.sonarqube插件版本兼容问题。
将org.sonarqube插件版本升级至2.6.1,重新构建工程:
1. 仔细阅读spring源码工程根目录下的import-into-idea.md说明文档。文档中提供了编译spring源码之前的准备工作以及编译过程中可能出现的已知问题。
2. 编译过程中若出现Error:(354, 51) java: 找不到符号 符号: 变量 XXX 位置: 类 org.springframework.core.xxx.XXXX 等问题,可能是gradle版本问题,不妨修改gradle的版本后重新构建工程。
本文首次构建spring工程使用的是gradle-5.6.1版本,构建不成功,故重新使用了gradle-4.10.2版本再次构建工程。在排除org.sonarqube插件版本兼容问题后,构建spring工程成功。[猜测:如果使用合适的gradle版本,可能插件版本兼容问题也不存在。]
1.创建Demo模块:spring-demo
创建demo模块,并且使demo模块依赖spring工程的本地源码,这样在运行、调试demo模块代码时可以进入spring源码内,方便做笔记。
本文使用maven构建Demo模块:
spring-demo创建完成后,向该模块中添加相关spring本地源码依赖:
至此,完成spring-demo模块关联spring本地核心源码模块工作。
2. 编写spring-demo模块代码
本文spring-demo模块代码来自from_lazy_boy博客。
3. 运行调试spring-demo
【参考】
[1] IDEA阅读spring源码并调试
[2] 使用idea和gradle编译spring5源码
[3] Spring源码——IDEA读Spring源码环境搭建
[4] IntelliJ下Gradle 构建Spring 5.X 源码(图文详细版)
-------------end-------------
PS:阅读过程中若存在疑问,欢迎一起讨论哈 ^_^