一步一步构建Spring5源码

Posted IT牧场

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一步一步构建Spring5源码相关的知识,希望对你有一定的参考价值。

技术干货每日送达!

构建环境

  • macOS 10.13.6

  • JDK1.8

  • IntelliJ IDEA 2018.3.6 (Ultimate Edition)

  • Spring v5.1.9.RELEASE

  • Gradle 5.5.1。直接使用brew安装Gradle brew install gradle

源码构建

  1. 源码导入

源码导入
  1. 阅读Spring源码下的 import-into-idea.md 文件可知,需要预先编译spring-oxm模块:

Precompile spring-oxm with ./gradlew :spring-oxm:compileTestJava

一步一步构建Spring5源码
compileTestJava
  1. 修改 gradle/docs.gradle 脚本。一开始尝试直接构建Spring源码,在构建的过程中会报错,通过修改docs.gradle 脚本,注释 dokkaasciidoctor

一步一步构建Spring5源码
修改docs.gradle 脚本
  1. 源码构建。

一步一步构建Spring5源码
源码构建1

等了好长好长的时间,终于构建完成了。

一步一步构建Spring5源码
源码构建2
  1. 在Spring项目中新增一个自己的module,尝试运行hello world,引入spring-context 依赖:compile(project(":spring-context"))

一步一步构建Spring5源码
my module
  1. 运行main方法,发现报错

Error:(160, 32) java: 找不到符号 符号: 变量InstrumentationSavingAgent 位置:

一步一步构建Spring5源码
报错

网上搜索了一大堆的解决方法,发现都不行。后来看了spring-context的依赖发现,spring-instrument 在 spring-context 中为 optional 依赖:optional(project(":spring-instrument")),于是在自己的模块中添加spring-instrument依赖

添加依赖

再次运行main方法,程序运行成功。

ps:令我感到奇怪的是,当我在写这篇总结时,尝试通过移除spring-instrument依赖来复现上述的问题时,发现复现不了了,好神奇。

干货分享

001:《Java并发与高并发解决方案》学习笔记;002:《深入JVM内核——原理、诊断与优化》学习笔记;003:《Java面试宝典》004:《Docker开源书》005:《Kubernetes开源书》006:《DDD速成(领域驱动设计速成)》007:全部008:加技术讨论群

近期热文


想知道更多?长按/扫码关注我吧↓↓↓喜欢就点个"在看"呗^_^


以上是关于一步一步构建Spring5源码的主要内容,如果未能解决你的问题,请参考以下文章

一步一步Spring 源码环境搭建

Mybatis源码解析,一步一步从浅入深:映射代理类的获取

求一步一步教PHP留言板制作方法

RecyclerView 源码学习:一步一步自定义LayoutManager

RecyclerView 源码学习:一步一步自定义LayoutManager

带你一步一步的解析ARouter 源码