目录
1、Gradle安装及配置
2、Spring源码下载
3、如何编译通过
4、新建模块进行测试
最后
本文主要记录了自己在spring源码构建过程中遇到的一些坑,供大家参考。有些坑其他文章没有记录,有些步骤其他文章有些写得很复杂,经过我的摸索,探索出一套相对简单且行之有效的流程。
1、Gradle安装及配置
spring源码是通过Gradle来构建,所以我首先安装和配置了Gradle。这部分相对简单,没什么坑,本文后面附了一些参考链接有详细介绍,此处不再啰嗦。
2、Spring源码下载
Spring在github上的仓库地址是 spring仓库,建议不要通过下载zip的方式来下载spring源码,后面编译的时候会遇到各种跟git有关的奇怪问题。后来我改用git clone的方式重新下载源码,完美地避开了这些问题,还有仓库的前缀不要使用https,否则会报OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054的错误,仓库的前缀改为git则可以下载成功,贴一下具体命令:
git clone git://github.com/spring-projects/spring-framework.git
3、如何编译通过
源码下载成功以后,建议按照下面的顺序进行操作:
(1)打开windows资源管理器,进入源码的根目录,双击gradlew.bat,若命令行窗口显示build successful则进入下一步
(2)打开idea,依次点击“file”——"New"——"Project from Existing Sources",然后文件选择源码的根目录下的build.gradle,如下图所示:
打开spring项目之后,idea会自动build,下载依赖等等,这个过程耗时比较长,我自己的电脑花了2、3h,这中间可能会出现网络错误之类的错误,手动重新build一下就可以了。
(3)在settings.gradle中注释以下语句:
// id "io.spring.ge.conventions" version "0.0.9"
(4)上述的build成功之后,在idea的右侧gradle视图中找到spring-oxm项目的compileTestJava双击进行编译,在此过程中,我遇到“”无效的源发行版: 17”问题,我的做法是在idea的Gradle配置中做出如下的修改:
至此,spring源码已成功编译。
4、新建模块进行测试
为了方便编写测试spring的代码,在spring-framework单独新建一个模块my-test,依次点击“file”——"New"——"Module",代码目录如下:
代码编译的时候,遇到“Could not find method testCompile() for arguments”和“Could not find method compile() for arguments”等问题,这问题的原因是最新的gradle版本不再支持testCompile和compile方法,分别修改为testImplementation和implementation即可。