为什么需要本地编译, 因为本地的话, 就可以自己随意修改源码,添加注释了,比看class文件方便得多, 哈哈哈
所以强烈的推荐大家在本地自己编译一份,方便查看,修改的.
说一下我编译的过程:我下载源码花了一天, 因为在家网速很不好,我也很绝望.没得办法.
学习配置Gradle,和IDEA又花了半天的时间.最后是开始尝试导入到IDEA中,进行项目的构建,花了5天时间,很耗时, 各种零零散散的时间在下载jar包啊, 不断的尝试刷新之类的.最后终于成功了.
1.源码下载
下载spring的源码,现在源码在github上了,地址是:
GitHub – spring-projects/spring-framework: Spring Framework
直接git clone 下来就可以了.只要网速够快就很简单的.我记得源码的大小是
2.安装配置Gradle和IDEA
因为spring已经使用Gradle进行构建了,所以你需要会Gradle.
本次的教程是使用IntelliJ IDEA 2018.2.4 不考虑eclipse.
安装完成了Gradle, 配置好了IDEA的Gradle之后, 就可以开始了.
3.使用idea导入源码
使用IDEA打开spring源码的文件夹,注意选择自动导入, 还有选择本地的Gradle
请先暂停项目的构建, 看完了下面的再开始不迟.
1.git分支切换到5.0.x, 千万不要用5.1.x, 就这样吧这里使用5.1.x的分支总是构建出错,所以这次的学习源码使用5.0.x
2.不要修改build.gradle的配置, 例如写个allproject都使用阿里的maven仓库, 老老实实的从了spring的配置吧,网速不好, 就想办法,弄vpn!.
3.构建郭晨各种有两个错误需要修改
Error:(30, 0) No such property: values for class: org.gradle.api.internal.tasks.DefaultTaskDependency
Possible solutions: values
Open File(spring–beansspring–beans.gradle )
点击:Open File
然后注释掉,就可以了,再构建
//compileGroovy.dependsOn = compileGroovy.taskDependencies.values – ‘compileJava’
此时就可以构建成功了, 我们选择spring–core中的测试用例,随意运行一个测试用例,会对这个模块进行编译, 你就明白了, 有9个类缺失,缺失DefaultNamingPolicy类, 压根不知道去哪里了.
经过排查发现是DefaultNamingPolicy未引入,它来源于spring–cglib–repack、spring–objenesis–repack这两个jar文件.
解决方法:
进入源码的目录,执行:gradle objenesisRepackJar 、
gradle cglibRepackJar
这个文件夹下面, 调出cmd黑窗口, 分两次, 依次执行以上的命令就可以了.
至于最新的分支, 以后有时间再弄吧, 准备学习spring的源码了
1 人点赞
1
原文地址:https://blog.csdn.net/u010398771/article/details/134006270
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_38218.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!