基于Gradle的Spring源码下载及构建技巧

1 Spring 5源码下载

首先你的JDK需要升级到1.8以上版本。从Spring 3.0开始,Spring源码采用GitHub托管,不再提供官网下载链接。这里不做过多赘述,大家可自行去GitHub网站下载,我使用的版本下载链接为 https://github.com/spring-projects/spring-framework/archive/v5.0.2.RELEASE.zip ,下载完成后,解压源码包会看到如下图所示的文件目录。

file

2 基于Gradle的源码构建技巧

由于从Spirng 5开始都采用Gradle编译,所以构建源码前需要先安装Gradle。Gradle下载地址为 https://gradle.org/releases ,我使用的是Spring 5官方推荐的版本Gradle 4.0,下载链接为https://gradle.org/next-steps/?version=4.0&format=bin ,下载完成后按以下步骤操作,这里以Windows操作系统为例。
第一步,配置环境变量,如下图所示。

file

第二步,添加环境变量“%GRADLE_HOME%\bin”,如下图所示。

file

第三步,检测环境,输入gradle -v命令,得到如下图所示结果。


----------------------------------------------------------------------
Gradle 4.0 
----------------------------------------------------------------------

Build time:2017-06-14 15:11:08 UTC
Revision: 316546a5fcb4e2dfe1d6aaÜb73a4e09e8cecb5a5 

Groovy:2. 4. 11
Ant:Apache Ant THD version 1. 9.6 compiled on June 29 2015
JVM:1.8.0_ 131 (Oracle Corporation 25.131-b11)
OS:Windows 10 10. 0 amd64

第四步,编译源码,将cmd切到spring-framework-5.0.2.RELEASE目录,运行gradlew.bat,如下图所示。


Starting a Gradle Daemon (subeequent builds wi11 be faster)

> Task :he1p

We1come to Gradle 4.3.1.

To run a build, run gradlew <task> ...

To see a list of available tasks, run gradlew tasks

To see a list of command-line options, run gradlew –help

To see more detail about a task, run gradlew help --task <task>

DUILD SUCCESSPUL in 8s
1 actionable task: 1 executed

第五步,转换为Eclipse项目,执行import-into-eclipse.bat命令,构建前请确保网络状态良好,按任意键继续:


----------------------------------------------------------------------
Spring Framework - Eclipse/STS project impart guide

This script will guide you through the process of importing the Spring
Framerork projects into Ec1ipse or the Spring Tool Suite STS) It is
recommended that you have a recent version of Eclipse or STS. As a bare
minimum you wi11 need Eclipse with full Java 8 support, the AspectJ
Development Tools (AJDT), and the Groovy Compiler.

If you need to download and install Eclipse or STS, please do that now
by visiting one of the following sites:

- Eclipse dommloads: http://dowload.eclipse.org/eclipse/dowloads
- STS dowmloads: http://spring.io/too1s/sts/a11
- STS nightly builds:http://dist.springsource.com/snapshot/STS/night1y-distributions.html
- ADJT: http://www.eclipse.org/ajdt/downloads/
- Groovy Eclipse: https://github.com/groovy/groovy-eclipse/wiki

Otheryise. prgss enter and we’11 begin.
请按任意键继续. . .

----------------------------------------------------------------------
STEP 1: Generate subproject Eclipse metadata

The first step wil1 be to generate Eclipse project metadata for each
of the spring-* subprojects. This happens via the built-in
"Gradle wrapper" script (./gradlew in this directory). If this is your
first time using the Gradle wrapper, this step may take a fewr minutes
while a Gradle distribution is downloaded for you.

第六步,等待构建成功(若中途出现错误,大部分情况是由于网络中断造成的,一般重试一下都能解决问题),构建成功后会出现如下信息:


BUILD SUOCESSFUL in 6s
6 actionable tasks: 6 executed

----------------------------------------------------------------------
STEP 4: Import root project into Ec1ipse/STS

Follow the project inport steps listed in step 2 above to inport the 
root project.

Press. enter, when complete, and move on to the final step.
请按任意键继续. . .

----------------------------------------------------------------------
STEP 5: Enable Git support for all projects

- In the Ec1ipse/STS Package Exp1orer, se1ect al1 spring* projects.
- Right-click to cpen the context menu and select Team > Share Project...
- In the Share Project dialog that appears, select Git and press Next
- Check "Use or create repository in parent folder of project"
- C1ick Finish

When complete, you' 11 have Git support enabled for all projects.

You' re ready to code! Goodbye!

到此为止,已经可以将项目导入Eclipse了。我们推荐使用的IDEA也比较智能,可以直接兼容Eclipse项目。接下来继续看下面的步骤。
第七步,导入IDEA。打开IntelliJ IDEA,单击“Import Project”,在弹出的界面中选择spring-framework-5.0.2.RELEASE文件夹,单击“OK”按钮,再单击“Finish”按钮,如下三图所示。

file
file
file

第八步,等待构建完成,在网络良好的情况下大约需要10分钟便可自动构建完成,你会看到如下图所示界面。

file

第九步,在IDEA中,如果能找到ApplicationContext类,按Ctrl+Shift+Alt+U键,出现如下图所示类图界面说明构建成功。

file

3 Gradle构建过程中的坑

如果项目环境一直无法构建成功,类图无法自动生成,那么你一定是踩到了一个坑。
第一步,单击View→Tool Windows→Gradle命令,如下图所示。

file

第二步,单击Gradle视图中的刷新按钮,如下图所示。

file

这时会出现如下图所示的错误。

file

第三步,出现错误显然跟Gradle没有任何关系,解决办法:
(1)关闭IDEA,打开任务管理器,结束跟Java有关的所有进程。
(2)找到JAVA_HOME→jre→lib目录,将tools.jar重命名为tools.jar.bak。
(3)重启IDEA,再次单击刷新按钮,等待构建完成。
关注『 Tom弹架构 』回复“Spring”可获取完整源码。

本文为“Tom弹架构”原创,转载请注明出处。技术在于分享,我分享我快乐!如果您有任何建议也可留言评论或私信,您的支持是我坚持创作的动力。关注『 Tom弹架构 』可获取更多技术干货!

原创不易,坚持很酷,都看到这里了,小伙伴记得点赞、收藏、在看,一键三连加关注!如果你觉得内容太干,可以分享转发给朋友滋润滋润!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341

推荐阅读更多精彩内容