spring-framework-5.1.x 源码编译 环境搭建 [ idea:2020.1 ]
一. Gradle下载与安装
软件名称 | 版本 | 下载地址 |
---|---|---|
jdk | jdk 11.0.5 | 下载链接 提取码:qwpe |
spring-framework | 5.1.x | 下载链接 提取码:diq2 |
gradle | 5.6.3 | 下载链接 提取码:pgkc |
idea | 2020.1/2020.3 | 下载链接 提取码:5555 |
二. Spring和Gradle
2.1 官网下载spring源码
GitHub 搜索springframework 版本号 5.1.x
官网下载: spring-projects / spring-framework 的 github地址
2.2 下载配置gradle
我们选择想要安装的发布版本,gradle-x.x-bin.zip是需要下载的安装发布版,gradle-x.x-src.zip是源码,gradle-x.x-all.zip则是下载全部的文件。 我选择下载gradle-5.6.3-bin.zip。
安装Gradle
Gradle下载的源码不需要安装,我们将下载的压缩包在本机的目录下直接解压即可,解压后的目录如下图所示。
配置Gradle环境变量
右键“这台电脑”–>“属性”–>“高级系统设置”–>“环境变量”–>“系统变量”,我们在系统变量中新增一个GRADLE_HOME值为解压后的路径,然后我们还需要修改Path变量,将Gradle的bin目录添加进去,我们在Path变量的最后面添加;%GRADLE_HOME%\bin,注意前面的分号(;)一定不能少。
验证Gradle是否安装成功
配置完成后我们查看一下本机安装的gradle的版本信息,
使用快捷键Win+R弹出的输入框中输入cmd,然后打开命令窗口,
在命令窗口中输入gradle -v 或 gradle -version 可以查看到gradle的版本信息
三. idea导入spring源码
3.1 导入源码
如果当前的版本是: idea 版本2020.1 ,操作步骤如下
注意:gradle开始进行源码项目构建的时候,会自动下载默认gradle版本进行项目构建,此时,强制结束下载进程
如果当前的版本是: idea 版本2020.3 ,操作步骤如下
注意:gradle开始进行源码项目构建的时候,会自动下载默认gradle版本进行项目构建,此时,强制结束下载进程
3.2 更改gradle的仓库源为阿里源,这样下载构建速度更快
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” }
}
repositories {
maven { url “https://maven.aliyun.com/repository/central” }
maven { url “https://repo.spring.io/libs-release” }
mavenLocal()
}
3.3 idea中的gradle设置
注意:
run tests using 设置成idea的
gradle user home : 可以任意选择一个本地磁盘的位置
3.4 设置完毕后,刷新gradle,让其重新构建源码
四. 编译⼯程
顺序:
core ⼯程 —>tasks —>other —>compileTestJava
oxm ⼯程 —>tasks —>other —>compileTestJava
context ⼯程 —>tasks —>other —>compileTestJava
beans ⼯程 —>tasks —>other —>compileTestJava
aspects ⼯程 —>tasks —>other —>compileTestJava
aop ⼯程 —>tasks —>other —>compileTestJava
4.1 core
4.2 oxm
4.3 context
4.4 beans
4.5 aspects
4.6 aop
五. 创建项目
5.1 在项目上右击新建model
在当前项目中添加spring-context依赖
创建测试类
编写配置文件
编写测试类
运行:报错问题1
5.2 问题处理
问题1:Kotlin: Language version 1.1 is no longer supported; please, use version 1.2 or greater.
解决:core/oxm/context/beans/aspects/aop/spring-dabing
上述模块全部都需要设置Kotlin版本大于1.1
重新运行测试类:问题2
G:\spring-framework-5.1.x\spring-context\src\main\java\org\springframework\context\weaving\DefaultContextLoadTimeWeaver.java:26:38
java: 找不到符号
符号: 类 InstrumentationSavingAgent
位置: 程序包 org.springframework.instrument
问题2:
解决:
步骤1:
编辑spring-context模块的spring-context.gradle
将optional更新为compile
步骤2:
重新编译spring-context模块