文章迁移语雀

为什么需要本地编译, 因为本地的话, 就可以自己随意修改源码,添加注释了,比看class文件方便得多, 哈哈哈
所以强烈的推荐大家在本地自己编译一份,方便查看,修改的.

说一下我编译过程:我下载源码花了一天, 因为在家网速很不好,我也很绝望.没得办法.
学习配置Gradle,和IDEA又花了半天的时间.最后是开始尝试导入到IDEA中,进行项目构建,花了5天时间,很耗时, 各种零零散散的时间下载jar包啊, 不断的尝试刷新之类的.最后终于成功了.

1.源码下载
下载spring源码,现在源码github上了,地址是:
GitHub – spring-projects/spring-framework: Spring Framework
直接git clone 下来就可以了.只要网速够快就很简单的.我记得源码大小

image.png

请确保你的网速够快, 不然要等很长的时间.

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(springbeansspringbeans.gradle
点击:Open File
然后注释掉,就可以了,再构建
//compileGroovy.dependsOn = compileGroovy.taskDependencies.values – ‘compileJava

image.png

重新构建刷新一下就可以

此时就可以构建成功了, 我们选择springcore中的测试用例,随意运行一个测试用例,会对这个模块进行编译, 你就明白了, 有9个类缺失,缺失DefaultNamingPolicy类, 压根不知道去哪里了.
经过排查发现是DefaultNamingPolicy引入,它来源于springcglibrepackspringobjenesisrepack两个jar文件.
解决方法
          进入源码的目录执行gradle objenesisRepackJar 、    
gradle cglibRepackJar

image.png

这个文件夹下面, 调出cmd窗口, 分两次, 依次执行以上的命令就可以了.

执行完成后,再次运行测试用例,就可以成功了.

至于最新分支, 以后有时间再弄吧, 准备学习spring的源码了

 

1 人点赞

  • 长河

1

原文地址:https://blog.csdn.net/u010398771/article/details/134006270

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_38218.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注