spring 源码构建时缺失 spring-cglib-repack.jar 和 spring-objenesis-repack.jar
问题发现及原因
在 IntelliJ IDEA
导入 Spring
源码编译时发现 spring-core
模块发生编译错误信息,错误信息获取,如图所示:
为了避免第三方 class 的冲突 , Spring 把最新的 cglib 和 objenesis 给重新打包( repack )了,它并没有在源码里提供这部分的代码,而是直接将其放在 jar 包当 中 , 这也就导致了我们拉取代码后出现编译错误。 那么为了画过编译 ,我们要把缺失的 jar 补回来 。
问题解决
缺失 jar引入
-
下载自己源码版本对应的
spring-core
jar 包,可以去 Maven 中央仓库下载 -
将 jar 包解压出来
spring-core-5.1.7.RELEASE
-
我们在cmd窗口下切换到第二步中解压的
spring-core-5.1.7.RELEASE
目录中
-
使用 jar 命令生成我们呢需要的 jar 文件
Spring-cglib-repack.jar
spring-objenesis-repack.jar
- 查看当前目录下确实生成了我们需要的 jar 文件
总结一下,虽然网上可以下载到这个2个包,但是,由于版本问题,还是不能使用。所以,我们最好的解决办法就是从源码里边将我们需要的包提取出来。