首先要阐述几个问题
1,下载IDEA https://www.jetbrains.com/idea/download/other.html 各个版本都有。
1,spring-framework的源码使用gradle 构建的,所有首先要安装gradle,熟悉gradle用法
gradle 各个版本的下载地址https://services.gradle.org/distributions/
2,spring-framework的源码托管在github上的,地址https://github.com/spring-projects/spring-framework
开始下载源码,如果用git clone 很慢,所有采用下载zip 包到本地然后解压
spring5源码包大概18M,
3,使用idea,打开本地解压的spring-framework5源码文件夹,是一个多模块的结构
认识一下两个很重要的配置build.gradle和settings.gradle
build.gradle 是spring-framework 源码构建的一些依赖环境,包括一些依赖的插件,和源码依赖的jar包,因为spring也要依赖一些开源的依赖来构建自己的工程。
以及定义打包流程,构建流水线等等。
settings.gradle是spring-framework的构建配置,是按模块化构建的
idea打开本地的一个工程,导入spring-framework,选择作为gradle工程 ,点击finish ,进去idea工作空间,gradle 会开始自动构建根据build.gradle配置。
idea2018.3.1gradle 的配置 如下 :
如果网络不好会出现构建失败,下载插件依赖失败。所有要保证网络良好。
问题汇总
问题1
Could not create parent directory for lock file D:\gradle_repo\wrapper\dists\gradle-4.4.1-bin\46gopw3g8i1v3zqqx4q949t2x\gradle-4.4.1-bin.zip.lck
问题2
Could not download jruby-complete.jar (org.jruby:jruby-complete:9.1.12.0): No cached version available for offline mode
问题3
解答:删除环境变量,删除C:\Users\ZLL\.gradle, 重新运行gradle -v
idea 2019.3.1 将spring-framework5.1.x 转变为多模块的gradle 的工程,通过gradle面板下的+
出现如下界面就是ok的了
1,测试目标,spring 主要是IOC(DI), AOP, WEB ,spring-core 是base 依赖,首先编译,build spring-core
,看到core模块下生成的build 文件夹就ok了
编译spring-context
编写IOC 测试demo,导入gradle 工程依赖 ,类似
同理
查看依赖是否导入成功
编写代码测试ioc
运行spring-context 的测试,这个会编译上面的类
IOC 测试结果
===》测试WEB TODO
总结和心得:
下载源码,搭建源码的环境,目的就是为了能够在源码中做笔记,删除代码,修改代码,看各种逻辑,熟悉源码的逻辑
不然那个Jar包下的关联源码也是可以看的,就是不能改。
本次环境
idea2018.3
java8
gradle 5.6.3 在关闭工程外进行的全局配置。
spring-framework5.0.x
看源码几个关键技能
1,IDEA环境的,就要熟练各种快捷键,能够很快查找类,关键配置。
2,要会断点调式,尤其是条件断点调试
3,要有个查看方向,基于一个点,不然就像进入了一个很深的丛林不知道出来。
《《《代码在手,天下我有》》》》