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参考手册。
:referencePdf
Font '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 FAILED
FAILURE: 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 FAILED
Total time: 3 mins 39.091 secs
为了全局性解决该问题,直接新增一个gradle的系统配置文件,保证idea中也能正常编译。
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8