00、Gradle的安装与配置及Spring源码导入

1、前言

工欲善其事,必先利其器,本文主要讲的是idea如何导入Spring源码及编译运行相关的测试案例

2、下载Spring源码

获取spring源码的方式多种多样,这里我们就使用下载压缩包的方式进行下载。具体步骤如下:

  • 在github上找到spring源码的仓库

  • 找到对应的你想看的版本分支

  • 点击code按钮

  • 点击Download ZIP进行下载

  • 下载完成后进行解压

不过还是建议大家使用clone的方式下载

01、Spring源码下载.png

3、gradle的下载安装及配置

3.1、gradle简介

gradle是源于Apache Ant和Apache Maven概念的项目自动化构建开源工具,它使用一种基于Groovy的的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置,面向Java应用为主。当前其支持的语言暂时有Java、Groovy、Kotlin和Scala。

gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。

IDEA 2017.3以上版本支持。

3.2、下载

官方地址:https://gradle.org/

下载地址:https://gradle.org/releases/

官方提供了两种下载方式,binary-only是只下载二进制源码,Complete(完整版)是下载源码和文档。如果有阅读文档的需求可以下载第二个,没有需要的下载Binary-only即可。

这里我选择的是: gradle-5.6.4的binary-only版本(保持与下载的spring源码的gradle需求一致 spring-framework-5.2.15.RELEASE\gradle\wrapper\gradle-wrapper.properties文件查看)

3.3、安装

解压安装包到想安装到的目录即可。

3.4、配置

3.4.1、配置环境变量

1)、 新建变量

变量名:GRADLE_HOME

变量值:解压到的目录

02、环境变量gradle_home配置.png

同时别忘了在Path里面加上 %GRADLE_HOME%\bin

2)、新建变量

变量名:GRADLE_USER_HOME

变量值:自定义Gradle仓库目录或者Maven的仓库目录

03、环境变量gradle_user_home配置.png

3)、验证

在cmd窗口输入 gradle -v

04、gradle安装完成之后的验证.png
3.4.2、配置gradle仓库源

在Gradle安装目录下的 init.d 文件夹下,新建一个 init.gradle 文件,里面填写以下配置。

allprojects {
    repositories {
        maven { url 'file:///D:/apache/gradle_home'}
        mavenLocal()
        maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
        maven { name "Bstek" ; url "http://nexus.bsdn.org/content/groups/public/" }
        mavenCentral()
    }

    buildscript { 
        repositories { 
            maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
            maven { name "Bstek" ; url 'http://nexus.bsdn.org/content/groups/public/' }
            maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
        }
    }
}

repositories中写的是获取jar包的顺序。先是本地的gradle仓库路径;接着的mavenLocal() 是获取Maven本地仓库的路径;第三条和第四条是从国内和国外的网络上仓库获取;最后的mavenCentral()是从Apache提供的中央仓库获取jar 包。

4、配置IDEA中的gradle

在IDEA的File-->Settings...-->Build, Execution, Deployment-->Build Tools-Gradle。

在这里如果你设置了GRADLE_USER_HOME之后,IDEA就能自动识别了。


05、配置IDEA中的gradle.png

5、使用idea导入Spring源码

在IDEA的File-->New-->Project from Existing Sources...

06、IDEA导入Spring源码步骤1.png

选择下载好的Spring源码目录,然后点击OK

06、IDEA导入Spring源码步骤2.png

点击"OK"后,选择Import project from external model-->gradle点击finish

06、IDEA导入Spring源码步骤3.png

在编译的过程中,需要更改一些gradle的配置

06、IDEA导入Spring源码步骤4.png

配置好后,耐心等待即可。大约等个10分钟左右就能编译完成了哦。

6、创建测试module

下面就让我们在源码中创建个模板测试吧

选择项目->右键->new module

07、创建测试module1.png

07、创建测试module2.png

07、创建测试module3.png

07、创建测试module4.png

7、遇到的问题及解决方案

Caused by: net.rubygrapefruit.platform.NativeException: Could not start 'git'

原因分析:zip 发行版主要是用来共享源代码,但不一定用于构建它。

参考出处:https://github.com/spring-projects/spring-framework/issues/24467

08、Spring源码导入遇到的问题1.png

解决方案:使用git clone的方式下载源代码,或者忽略(不影响项目运行)

Kotlin: warnings found and -Werror specified

原因分析:没有 spring-cglib-repackspring-objenesis-repack

解决方案:

08、Spring源码导入遇到的问题2.png

解决方案出处:https://www.cnblogs.com/liuzhihang/p/spring-source-build.html

8、运行测试类

09、运行结果示例.png

恭喜你,接下来你就可以为所欲为的debug学习Spring源码了。

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