原滋原味的构建Spring Framework源码

xiaoxiao2021-02-27  150

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
转载请注明原文地址: https://www.6miu.com/read-14672.html

最新回复(0)