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

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