才開始《Spring源碼深度解析》就碰到了問題,按照書上的步驟從github上下載了源碼,然後導入項目後,缺少spring-cglib-repack-3.2.5.jar和spring-objenesis-repack-2.6.jar這兩個jar包。 網上很多解決辦法都是從spring-core中解壓 ...
才開始《Spring源碼深度解析》就碰到了問題,按照書上的步驟從github上下載了源碼,然後導入項目後,缺少spring-cglib-repack-3.2.5.jar和spring-objenesis-repack-2.6.jar這兩個jar包。
網上很多解決辦法都是從spring-core中解壓找到對應的cglib和objenesis,然後使用jar命令來生成jar包。
但,後來發現不需要這麼麻煩,spring都已經幫你想好了一切。
在spring-framework目錄下,依次找到spring-core下的spring-core.gradle文件,如下
該文件中有兩個gradle命令
所以只需要在spring-framework目錄下,運行dos/終端,執行這兩個命令即可:gradle objenesisRepackJar和gradle cglibRepackJar命令,執行後會在spring-core目錄下的build文件夾中生成libs/兩個jar包。
如下是cglibRepackJar命令截圖
由於之前已經執行過一次,已經存在對應的jar包,所以中間過程都沒了
objenesisRepackJar同理。
繼昨天問題解決之後,今天發現spring-core項目中還是存在著錯誤。GroovyBeanDefinitionReader.java報錯。
這是因為eclipse不支持Groovy。安裝插件即可。
1、查看eclipse版本
2、https://github.com/groovy/groovy-eclipse/wiki 進入groovy官方查看與自己eclipse相匹配的下載。
3、安裝插件
點擊add後出現視窗,填寫如下:
後續按步驟安裝即可。
昨天的補充,完成前面的工作之後,spring-core下麵的org.springframework.core.ReactiveAdapterRegistry 類依舊報錯,提示 The type java.util.concurrent.Flow$Publisher cannot be resolved. It is indirectly referenced from required .class files。
這是Java9裡面的內容。
我的做法是切換了spring源碼的分支,換到了4.3.x分支下的,使用jdk8即可。 完成後沒有任何錯誤了。