编译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打开

编译Spring5.2.0源码


将 spring-aspects 模块unload


编译Spring5.2.0源码


新建一个模块


编译Spring5.2.0源码


引入相关的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.jarspring-objenesis-repack-3.0.1.jar  引入到新增的模块中


遇到的问题基本是这些、然后无论是 ClasspathXmlApplicationContext 还是 AnnotationConfigApplicationContext 作为容器、都能正常运行


以上是关于编译Spring5.2.0源码的主要内容,如果未能解决你的问题,请参考以下文章

Spring FactoryBean 缓存

是否可以动态编译和执行 C# 代码片段?

Android 逆向类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )(代码片段

Notepad++编辑器——Verilog代码片段直接编译

导致资产预编译在heroku部署上失败的代码片段

如何有条件地将 C 代码片段编译到我的 Perl 模块?