由于想更深入的学习下spring,于是下载了spring的源码编译之后导入eclipse。这其中出现了一些问题,虽然最后
工程能够build成功,但是这些问题仍然没有解决。
首先说说自己的一些比较蠢的做法,一开始我是从csdn随便搜了几篇关于编译spring源码并导入eclipse工程的文章,也没注意
看时间,跟着瞎搞。步骤是这样的1.在git上下载spring源码 git clone git@github.com:spring-projects/spring-framework.git
2.手动进入每个子源码包中使用gradle编译代码。然后导入eclipse。使用这两步来编译导入,出现了以下2个错误。
1.缺少jar包,spring-cglib-repack-3.2.5.jar,spring-objenesis-repack-2.6.jar。
2.缺少其他的工程引用。
下载好缺少的jar包并build path。再一次手动gradle其他依赖工程。讲道理这么做应该是可行的,但是解决以上两个问题之后
我的eclipse在build工程时失败了,报出了Internal compiler error: java.lang.ClassCastException: org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding
cannot be cast to org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding at org.eclipse.jdt.internal.compiler.lookup.ConstraintTypeFormula.addConstraintsFromTypeParameters(ConstraintTypeFormula.java:348) ConcurrentReferenceHashMap.java /spring-core/src/main/java/org/springframework/util
刚报错时,不够细心。第一时间是想百度搜搜看,但是并不能搜到同样的错误。浪费了很多时间。后来看到是org.eclipse包下的
类转换错误,才想起可能是eclipse版本过低的原因。于是使用了一个版本较新4.6.3的eclipse。然后这个类转化错误没了。
还没完,做完以上后还得下个groovy的工具。但是使用官网地址,会一直read time out。最后在http://download.youkuaiyun.com/download/qq_16899785/9569885
下载了groovy的plugins和features,合并进自己的eclipse文件中。该groovy版本是2.4.12
后来又看到运行import-into-eclipse.bat可以直接全编译完,于是我又重新编译源码,这次导入eclipse没有报jar找不到的错,直接就成功了。