原滋原味的构建Spring Framework源码

来源:互联网 发布:mac粉底液色号选择 编辑:程序博客网 时间:2024/06/17 03:50

1、克隆Github代码仓库

github提供了两种方式(ssh、https)克隆仓库,即。考虑windows系统的方便,我使用https的方式。
很多人一开始参考README.md的说明,代码往往就是克隆不下来。

Check out sources
git clone git@github.com:spring-projects/spring-framework.git

那是因为使用了ssh协议,你的先在电脑上配置一个公钥。为了简单点使用,直接使用账户密码的方式,认证github服务器。
这里写图片描述

这里写图片描述

静静的等待克隆下载吧!

2、切换git分支

克隆下来的代码,默认是master分支,不建议直接去研究,master分支的代码应该是属于开发的分支;建议切换到一个最新的release。
这里写图片描述

这里写图片描述

3、Gradle构建源码

因gradle发展的比较快,所有gradle的版本实在太多了,经常出现因版本的问题导致编译工程失败。所有gradle就有了一个gradle包装器(gradlew)的东东,主要用来解决项目构建的gradle版本问题。大概意识就是通过gradlew指定一个gradle版本,在执行 gradlew clean build -x test 命令时,如果本地没有指定的gradle版本,它就会自动下载一个。

例如:这是我的电脑上gradlew下载的多版本gradle

这里写图片描述

在命令行窗口中执行下面的构建命令,在网络良好和内存足够,一般都会编译成功。

gradlew build -x test

下面这个就是gradle的内存不足,导致无法生成pdf参考手册。

:referencePdfFont 'Symbol,normal,700' not found. Substituting with 'Symbol,normal,400'.Font 'ZapfDingbats,normal,700' not found. Substituting with 'ZapfDingbats,normal,400'.Font 'ZapfDingbats,italic,400' not found. Substituting with 'ZapfDingbats,normal,400'.Line 1 of a paragraph overflows the available area by 37686mpt. (fo:block, location: 4331/4743)Line 1 of a paragraph overflows the available area by 13686mpt. (fo:block, location: 4333/1089)Line 1 of a paragraph overflows the available area by 13686mpt. (fo:block, location: 5684/3551)Line 1 of a paragraph overflows the available area by 1686mpt. (fo:block, location: 5684/9485)Line 2 of a paragraph overflows the available area by more than 50 points. (fo:block, location: 5684/9871)Line 2 of a paragraph overflows the available area by 1686mpt. (fo:block, location: 7951/6052)Line 2 of a paragraph overflows the available area by 8125mpt. (fo:block, location: 9408/628):referencePdf FAILEDFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':referencePdf'.> Java heap space* Try:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.BUILD FAILEDTotal time: 3 mins 39.091 secs

为了全局性解决该问题,直接新增一个gradle的系统配置文件,保证idea中也能正常编译。
这里写图片描述

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
0 0