1、前言
工欲善其事,必先利其器,本文主要讲的是idea如何导入Spring源码及编译运行相关的测试案例
2、下载Spring源码
获取spring源码的方式多种多样,这里我们就使用下载压缩包的方式进行下载。具体步骤如下:
在github上找到spring源码的仓库
找到对应的你想看的版本分支
点击code按钮
点击
Download ZIP
进行下载下载完成后进行解压
不过还是建议大家使用clone的方式下载
3、gradle的下载安装及配置
3.1、gradle简介
gradle是源于Apache Ant和Apache Maven概念的项目自动化构建开源工具,它使用一种基于Groovy的的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置,面向Java应用为主。当前其支持的语言暂时有Java、Groovy、Kotlin和Scala。
gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。
IDEA 2017.3以上版本支持。
3.2、下载
官方地址:https://gradle.org/
下载地址:https://gradle.org/releases/
官方提供了两种下载方式,binary-only是只下载二进制源码,Complete(完整版)是下载源码和文档。如果有阅读文档的需求可以下载第二个,没有需要的下载Binary-only即可。
这里我选择的是: gradle-5.6.4的binary-only版本(保持与下载的spring源码的gradle需求一致 spring-framework-5.2.15.RELEASE\gradle\wrapper\gradle-wrapper.properties文件查看)
3.3、安装
解压安装包到想安装到的目录即可。
3.4、配置
3.4.1、配置环境变量
1)、 新建变量
变量名:GRADLE_HOME
变量值:解压到的目录
同时别忘了在Path里面加上
%GRADLE_HOME%\bin
2)、新建变量
变量名:GRADLE_USER_HOME
变量值:自定义Gradle仓库目录或者Maven的仓库目录
3)、验证
在cmd窗口输入 gradle -v
3.4.2、配置gradle仓库源
在Gradle安装目录下的 init.d 文件夹下,新建一个 init.gradle 文件,里面填写以下配置。
allprojects {
repositories {
maven { url 'file:///D:/apache/gradle_home'}
mavenLocal()
maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
maven { name "Bstek" ; url "http://nexus.bsdn.org/content/groups/public/" }
mavenCentral()
}
buildscript {
repositories {
maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
maven { name "Bstek" ; url 'http://nexus.bsdn.org/content/groups/public/' }
maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
}
}
}
repositories中写的是获取jar包的顺序。先是本地的gradle仓库路径;接着的mavenLocal() 是获取Maven本地仓库的路径;第三条和第四条是从国内和国外的网络上仓库获取;最后的mavenCentral()是从Apache提供的中央仓库获取jar 包。
4、配置IDEA中的gradle
在IDEA的File-->Settings...-->Build, Execution, Deployment-->Build Tools-Gradle。
在这里如果你设置了GRADLE_USER_HOME之后,IDEA就能自动识别了。
5、使用idea导入Spring源码
在IDEA的File-->New-->Project from Existing Sources...
选择下载好的Spring源码目录,然后点击OK
点击"OK"后,选择Import project from external model-->gradle点击finish
在编译的过程中,需要更改一些gradle的配置
配置好后,耐心等待即可。大约等个10分钟左右就能编译完成了哦。
6、创建测试module
下面就让我们在源码中创建个模板测试吧
选择项目->右键->new module
7、遇到的问题及解决方案
Caused by: net.rubygrapefruit.platform.NativeException: Could not start 'git'
原因分析:zip 发行版主要是用来共享源代码,但不一定用于构建它。
参考出处:https://github.com/spring-projects/spring-framework/issues/24467
解决方案:使用git clone
的方式下载源代码,或者忽略(不影响项目运行)
Kotlin: warnings found and -Werror specified
原因分析:没有 spring-cglib-repack
和 spring-objenesis-repack
包
解决方案:
解决方案出处:https://www.cnblogs.com/liuzhihang/p/spring-source-build.html
8、运行测试类
恭喜你,接下来你就可以为所欲为的debug学习Spring源码了。