idea 编译spring_Spring 源码阅读环境的搭建
" 前言
本文记录了 Spring 源码环境的搭建方式,以及踩过的那些坑!当前版本:5.3.2-SNAPSHOT。
环境准备
- Git
- JDK
- master 分支需要 JDK 11
- 5.2.x 分支, JDK8 即可
- Gradle 6.5.1
- IDEA 最新 (2020.2.3)
Spring 源码仓库地址:https://github.com/spring-projects/spring-framework
下载源码
- clone 源码
git clone https://github.com/spring-projects/spring-framework.git
2. 使用 IDEA 打开
3. 等待 IDEA 加载完成即可。
注: 也可以指定 clone 的分支
git clone -b 5.2.x https://github.com/spring-projects/spring-framework.git
或者先 fork 到自己的仓库,然后再 clone。
这里我是 fork 到我的仓库,然后再 clone 的。
当前 master 分支代表的版本为 5.3.2-SNAPSHOT。
执行测试
- 在项目右键创建
module
- 选择
Gradle
Java
- 创建 module
- 在 build.gradle 中添加配置
compile(project(":spring-context"))
- 创建测试类并测试
其中 UserComponent
添加了 @Component
注解, 程序正常执行则一切 OK。可以开始愉快的调试代码了。
问题总结
编译失败
有小伙伴直接下载 zip 包,可能遇到以下问题:(非常不建议直接下载 zip 包构建,想知道原因可以继续看,最后我也没有构建成功,而是直接通过 clone 构建的。)
- 报错如下:
fatal: not a git repository (or any of the parent directories): .gitBUILD SUCCESSFUL in 14s
Build scan background action failed.
org.gradle.process.internal.ExecException: Process 'command 'git'' finished with non-zero exit value 128 ... 其他省略
看意思是没有 git 配置,那就添加上吧!
2. 这时候想着添加 git
VCS
-> Enable Version Control Integration...
-> 右上角 Reload All Gradle Projects
依然报错
fatal: Needed a single revision
3. 查询问题
issues 地址:https://github.com/spring-projects/spring-framework/issues/24467
建议使用
$ git clone git@github.com:spring-projects/spring-framework.git
意思就是 zip 发行版主要是用来共享源代码,但不一定用于构建它。
4. 最后我选择了使用 clone 的方式,直接 clone 下来,然后 build 通过。
缺少 cglib 和 objenesis 包
Kotlin: warnings found and -Weeror specified
没有 spring-cglib-repack
和 spring-objenesis-repack
包
执行这两个即可。
找不到包 jdk.jfr
import jdk.jfr.Category;
import jdk.jfr.Description;
import jdk.jfr.Event;
import jdk.jfr.Label;
JDK 升级为 11。因为我本地使用的是 JDK8,发现报错,jfr 包需要升级 JDK 11 才有。
如果不生效,可以通过:
IDEA -> File
-> Project Structure
-> Project
检查下是否修改为 JDK 11
快捷键:⌘ + ;
相关资料
- Spring 仓库:https://github.com/spring-projects/spring-framework
- Spring 构建文档:https://github.com/spring-projects/spring-framework/wiki/Build-from-Source
历史文章
- ReentrantLock 源码、画图一起看一看!
- ReentrantReadWriteLock 的原理!
- Spring 自调用事务失效,你是怎么解决的?
idea 编译spring_Spring 源码阅读环境的搭建相关推荐
- spring 源码 找不到 taskprovider_Spring 源码阅读环境的搭建
" 前言 本文记录了 Spring 源码环境的搭建方式,以及踩过的那些坑!当前版本:5.3.2-SNAPSHOT. 环境准备 Git JDK master 分支需要 JDK 11 5.2. ...
- Spark源码学习之IDEA源码阅读环境搭建
软件准备 (1)Java 1.8 (2)Scala 2.11.12(需要在IDEA中安装) (3)Maven 3.8.2(需要在IDEA中配置) (4)Git 2.33 以上软件需要安装好,并进行环境 ...
- Spring Boot 2.0系列文章(四):Spring Boot 2.0 源码阅读环境搭建
前提 前几天面试的时候,被问过 Spring Boot 的自动配置源码怎么实现的,没看过源码的我只能投降��了. 这不,赶紧来补补了,所以才有了这篇文章的出现,Spring Boot 2. 0 源码阅 ...
- jdk javac运行不了_Intellij IDEA搭建jdk源码阅读环境
一.找到源码位置 直接找到jdk安装的目录,会看到src.zip的压缩包,这里面就是jdk的源码,例如下图: 在这里解压. 第一次尝试建议使用9或更早版本jdk的源码,否则易造成卡死. 二.Intel ...
- Windows + IDEA + SBT 打造Spark源码阅读环境
Spark源码阅读环境的准备 Spark源码是有Scala语言写成的,目前,IDEA对Scala的支持要比eclipse要好,大多数人会选在在IDEA上完成Spark平台应用的开发.因此,Spark源 ...
- ardupilot java_基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建
基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建 作者:Awesome 日期:2017-10-21 需准备的软件工具 Ardupilot飞控源码 PX4 toolchain JAVA ...
- spring5.3.x源码阅读环境搭建
spring5.3.x源码阅读环境搭建-gradle构建编译 文章目录 spring5.3.x源码阅读环境搭建-gradle构建编译 一.依赖工具 二.下载源码 三.开始构建 四.编译源码 五.源码测 ...
- Mybatis 源码阅读环境搭建
Mybatis源码阅读环境搭建 前言 一.下载mybatis的源码 二.编译源码 三.创建测试项目 前言 mybatis源码阅读环境搭建还是比较简单的,接下来我们讲解一下如何搭建该源码阅读环境 ...
- Mac搭建JDK源码阅读环境
点赞再看,养成习惯,微信公众号搜索[虚竹讲程序经],获取更多技术干货! 想要读懂JDK源码,需要在自己电脑上搭建JDK的源码阅读环境,正所谓,工欲善其事,必先利其器.下面演示如何在Mac上结合Idea ...
最新文章
- 同类型结构体之间赋值不一定有效
- FireFox 开始放弃 Flash:停止部分内容支持
- HDU 4323 Magic Number(编辑距离DP)
- STM32开发 -- 串口详解
- 电气期刊论文实现:考虑排放目标和输电损耗的经济调度【有代码】
- html进度条实现方案,两种进度条实现方案的对比
- iptables_ftp
- 揭秘基于MBSE集成化的汽车电子解决方案
- 标签打印软件如何制作图文标签
- 做H5页面用什么软件比较好?3款易上手好用的H5网页编辑工具
- 什么是SDN,为什么要有SDN,SDN有什么安全问题
- 商城类小程序的主要功能有哪些?
- 1500个javascript特效
- 解决java.util.ConcurrentModificationException:null
- Java入门之顺序、选择、循环结构
- PyQt5:布局,pushbutton按钮,radiobutton按钮,lableImage设置图片的基本使用方法
- 隐私计算及密码学学习记录
- 手写call,apply,bind函数
- 计算机联锁的检修与维护,tyjlⅱ计算机联锁检修作业指导书.docx
- 支撑马蜂窝会员体系全面升级背后的架构设计