编译Spring源码

记录一次Spring源码的编译过程

Spring源码仓库地址:https://github.com/spring-projects/spring-framework

针对网上的教程大多数都是下载某一个版本的源码,但是如果我们想要切换到其它版本就显得不方便了。这里将克隆Spring的整个项目,并且针对4.3、5.0版本的源码进行编译。

编译环境:

工具版本
IDEA2018.3
gradle4.6
jdk8

工具的版本不需要一致。

gradle环境配置

下载地址:https://gradle.org/releases/,下载binary-only即可,解压到某个盘符。

网上教程也很多,这里简单说明一下。在系统变量中添加 GRADLE_HOME 变量,对于以后升级版本,只需要修改该变量即可。GRADLE_USER_HOME变量值将作为gradle的本地仓库。

在这里插入图片描述

同时在path系统变量中添加 %GRADLE_HOME%\bin ,在任何路径都能执行 gradle 命令。
在这里插入图片描述

gradle从仓库中下载资源慢的很,和maven一样,也可配置。在GRADLE_USER_HOME变量值路径下新建init.gradle,作为gradle的全局配置文件,配置如下:

allprojects{
    repositories {
        def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
        all { ArtifactRepository repo ->
            if(repo instanceof MavenArtifactRepository){
                def url = repo.url.toString()
                if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
                    remove repo
                }
            }
        }
        maven {
            url REPOSITORY_URL
        }
    }
}  

在idea中配置gradle

在这里插入图片描述

导入源码

在导入之前,最好留一份拷贝,毕竟从GitHub clone一份也需要时间。

在这里插入图片描述

导入之后,有一个漫长的下载依赖的过程。

编译源码

导入完成之后,我们先编译spring-oxm模块,在import-into-idea.md中也说明了。编译成功后,再编译spring模块。

在这里插入图片描述

4.3版本编译

将JasperReportsUtilsTests中的renderAsCsvWithExporterParameters测试方法、renderAsCsvWithDataSourcec测试方法、renderAsCsvWithCollection测试方法中的assertXxx先注释了。重新编译即可。

5.0版本编译

导入后下载依赖报错:

在这里插入图片描述

spring-beans.gradle文件的最后三行注释了。替换成如下

def deps = compileGroovy.taskDependencies.immutableValues + compileGroovy.taskDependencies.mutableValues
compileGroovy.dependsOn = deps - "compileJava"
compileKotlin.dependsOn(compileGroovy)
compileKotlin.classpath += files(compileGroovy.destinationDir)

重新编译,报错如下:

在这里插入图片描述

经过验证,设置IDEA中的项目编码行不通,这里将那些中文注释删了。编译成功后:

在这里插入图片描述

之前编译了4.3的版本,切换了版本之后,模块中的build版本并不会切换,因此需要先clean module清空之前编译的版本,再build module。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值