编译Spring5.2.0源码
Posted CoderLi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译Spring5.2.0源码相关的知识,希望对你有一定的参考价值。
下载 spring-framework-5.2.0.RELEASE.zip
https://github.com/spring-projects/spring-framework/releases
下载gradle 5.6.3 按照说明配置环境变量
https://gradle.org/install/
解压zip、查看根目录下的import-into-idea.md
执行脚本 (windows 系统)
.gradlew.bat :spring-oxm:compileTestJava
成功之后、使用IDEA打开
将 spring-aspects 模块unload
新建一个模块
引入相关的jar包
为啥引入那么多包、一个个试出来的、他们之间有引用关系
可能出现的问题
Error:(347, 51) java: cannot find symbol
symbol: variable CoroutinesUtils
location: class org.springframework.core.ReactiveAdapterRegistry.CoroutinesRegistrar
Error:(348, 51) java: cannot find symbol
symbol: variable CoroutinesUtils
location: class org.springframework.core.ReactiveAdapterRegistry.CoroutinesRegistrar
把这个jar引入进来就可以了
spring-core/kotlin-coroutines/build/libs/kotlin-coroutines-5.2.0.RELEASE.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/cglib/core/NamingPolicy
将spring core 中的 build/lib的spring-cglib-repack-3.3.0.jar和spring-objenesis-repack-3.0.1.jar 引入到新增的模块中
遇到的问题基本是这些、然后无论是 ClasspathXmlApplicationContext 还是 AnnotationConfigApplicationContext 作为容器、都能正常运行
以上是关于编译Spring5.2.0源码的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )(代码片段