Spring Framework源码搭建报错:1、gradle版本不兼容,2、org.springframework.objenesis.xx 不存在


在用Idea导入Spring Framework源码的时候出现了以下情况的错误:

1、gradle版本不兼容

由于Spring Framework源码是用gradle构建的,我们在选择gradle版本的时候,一定要用Spring Framework默认配置的gradle的版本,gradle版本在Spring Framework目录\spring-framework-5.1.0\gradle\wrapper\gradle-wrapper.properties下,如下图:
在这里插入图片描述上图显示Spring Framework源码默认配的gradle的版本是V4.8.1,最好也是用此版本构建Spring Framework,不然可能会出现不兼容的情况,那么如何配置成V4.8.1?如下图:
在Idea 点击 File | Settings | Build, Execution, Deployment | Build Tools | Gradle
在这里插入图片描述选择使用默认构建版本即可

2、org.springframework.objenesis.xx 不存在

在解决gradle版本不兼容的问题后,构建项目的时候又报类不存在的问题,如下显示:

Error:(20, 50) java: 程序包org.springframework.objenesis.instantiator不存在
Error:(21, 46) java: 程序包org.springframework.objenesis.strategy不存在
Error:(22, 46) java: 程序包org.springframework.objenesis.strategy不存在
Error:(35, 41) java: 找不到符号
  符号: 类 Objenesis
Error:(47, 23) java: 找不到符号
  符号:   类 InstantiatorStrategy
  位置: 类 org.springframework.objenesis.SpringObjenesis
Error:(49, 60) java: 找不到符号
  符号:   类 ObjectInstantiator
  位置: 类 org.springframework.objenesis.SpringObjenesis
Error:(68, 32) java: 找不到符号
  符号:   类 InstantiatorStrategy
  位置: 类 org.springframework.objenesis.SpringObjenesis
Error:(110, 20) java: 找不到符号
  符号:   类 ObjectInstantiator
  位置: 类 org.springframework.objenesis.SpringObjenesis
Error:(122, 23) java: 找不到符号
  符号:   类 ObjectInstantiator
  位置: 类 org.springframework.objenesis.SpringObjenesis

在这里插入图片描述原因是Spring Framework为了避免与cglib和objenesis冲突,将cglib和objenesis相关的包重新repack到org.springframework.cgliborg.springframework.objenesis包中,这部分的代码没有包含到源码当中。构建之前,可以通过添加Gradle任务来解决,见:https://github.com/spring-projects/spring-framework/blob/master/import-into-idea.md#known-issueshttps://youtrack.jetbrains.com/issue/IDEA-160605
解决办法如下:
在右侧的Gradle面板Spring -> Tasks -> other -> cglibRepackJar
在这里插入图片描述
右键勾上Execute Before Build,如下图:
在这里插入图片描述
以及Spring -> Tasks -> other -> objenesisRepackJar,右键勾上Execute Before Build
在这里插入图片描述
最后激活任务,如下图:
在这里插入图片描述
在这里插入图片描述
点击ok等待任务完成,成功后,如下图显示:
在这里插入图片描述
最后重新构建一下项目就好啦!!!

参考文章:
https://www.cnblogs.com/zhangfengxian/p/11072500.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章