idea使用Gradle构建Spring源码

最近在研究spring源码,所以需要使用idea构建spring源码,构建过程遇到了各种坑,自己一边网上搜索和进行各种尝试,最后终于构建成功了,所以写下这篇博客记录,希望能帮助别人。

1. 版本问题

首先要解决的就是IDEA、JDK、Gradle、Kotlin问题。

  1. 每一版的IDEA都有关于gradle和kotlin版本的限制,可以通过idea官网查看kotlin版本的限制,而关于gradle的限制(最低版本)如图所示(我这里用的2018.1版本的idea):
    idea使用Gradle构建Spring源码_第1张图片
  2. gradle 和 kotlin 存在版本对应关系。
  3. spring源码和gradle版本对应关系,最低gradle版本如图所示:
    idea使用Gradle构建Spring源码_第2张图片

所以很多人构建不成功,很大一部分原因就是版本问题导致的。

jdk 没特殊情况应该都是JDK1.8,本篇博客不再说明。

2. 构建过程

我这里的idea版本是2018.1,限制的gradle版本为4.4以上,kotlin为1.20以下,所以只能构建spring-framework-5.0.x。

gitee 上 5.0.x 关于gradle限制为4.4.1:
idea使用Gradle构建Spring源码_第3张图片
gitee 上 5.1.x 关于gradle限制为4.10.3:
idea使用Gradle构建Spring源码_第4张图片
本地安装gradle 4.10.3 版本,查看依赖的kotlin 版本:
idea使用Gradle构建Spring源码_第5张图片
由截图可知gradle 4.10.3依赖的kotlin就是1.2.61了,所以构建spring-framework-5.1.x很可能出现问题。

2.1 安装配置gradle

下载完解压到指定目录:
idea使用Gradle构建Spring源码_第6张图片
配置环境变量(还有一个是本地仓库地址):idea使用Gradle构建Spring源码_第7张图片
idea使用Gradle构建Spring源码_第8张图片
gradle和maven一样也需要配置仓库地址,按照官网的做法,在init.d文件夹下创建init.gradle文件:
idea使用Gradle构建Spring源码_第9张图片
内容如下:

allprojects {
    repositories {
        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/' }
        }
    }
}

2.2 下载Spring源码

github下载速度很慢,可以到gitee上下载,下载地址:gitee下载地址

这里选择5.0.x版本:
idea使用Gradle构建Spring源码_第10张图片

2.3 idea构建

idea使用Gradle构建Spring源码_第11张图片
idea使用Gradle构建Spring源码_第12张图片
idea使用Gradle构建Spring源码_第13张图片
然后等待构建就可以了。看到下图这样,就算是构建成功了,接下来就可以研究源码了。
idea使用Gradle构建Spring源码_第14张图片
如果构建过程中,kotlin版本不正确的话,可以通过如图进行kotlin插件更新:

如果要构建其他版本的spring源码当然也是可以的,需要注意各种版本之间的对应依赖关系。

你可能感兴趣的:(java,gradle)