IDEA使用gradle搭建spring5的源码阅读环境

首先要阐述几个问题

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.gradlesettings.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,要有个查看方向,基于一个点,不然就像进入了一个很深的丛林不知道出来。

《《《代码在手,天下我有》》》》

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值