导入spring源码到IDEA

环境:IDEA2019.3, jdk1.8.0_191,spring-framework-5.0.5.RELEASE,gradle-4.4.1

前期准备

1.访问spring官网下载spring framework源码

在这里插入图片描述
spring源码放在了github,点击如下图中的按钮访问(有可能访问不了github官网,可参考此处在这里插入图片描述
如下图步骤选择要下载的spring源码版本在这里插入图片描述
点击code–》Download ZIP下载在这里插入图片描述
解压到某个目录下在这里插入图片描述

2.安装gradle

到解压的spring源码目录下spring-framework-5.0.5.RELEASE\gradle\wrapper,打开gradle-wrapper.properties文件查看需要安装的gradle版本(此处:gradle-4.4.1-bin.zip)。
在这里插入图片描述
访问gradle官网https://gradle.org/releases/,下滑找到需要的版本,点击binary-only下载在这里插入图片描述
直接解压到你想要的目录下在这里插入图片描述
在gradle的init.d目录下新建build.gradle,写入如下代码。目的是编译源码的时候快些在这里插入图片描述

allprojects{
    repositories {
        def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public'
        def ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
        all { ArtifactRepository repo ->
            if(repo instanceof MavenArtifactRepository){
                def url = repo.url.toString()
                if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('http://repo1.maven.org/maven2')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
                    remove repo
                }
                if (url.startsWith('https://jcenter.bintray.com/') || url.startsWith('http://jcenter.bintray.com/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
                    remove repo
                }
            }
        }
        maven {
            url ALIYUN_REPOSITORY_URL
            url ALIYUN_JCENTER_URL
        }
    }
buildscript{
        repositories {
            def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public'
            def ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
            all { ArtifactRepository repo ->
                if(repo instanceof MavenArtifactRepository){
                    def url = repo.url.toString()
                    if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('http://repo1.maven.org/maven2')) {
                        project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
                        remove repo
                    }
                    if (url.startsWith('https://jcenter.bintray.com/') || url.startsWith('http://jcenter.bintray.com/')) {
                        project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
                        remove repo
                    }
                }
            }
            maven {
                url ALIYUN_REPOSITORY_URL
                url ALIYUN_JCENTER_URL
            }
        }
    }
}

设置gradle的环境变量(类似设置jdk的环境变量)。新建GRADLE_HOME系统变量,变量值为自己解压的gradle目录在这里插入图片描述
编辑path变量,在后面追加%GRADLE_HOME%\bin
在这里插入图片描述
cmd输入gradle -v验证是否安装并配置好gradle。如下图所示那样就已经配置好gradle了在这里插入图片描述
新建gradle仓库(repository),比如:在这里插入图片描述
这一步可以不做,改下spring源码目录下spring-framework-5.0.5.RELEASE\gradle\wrappe\gradle-wrapper.properties文件的distributionUrl的值(本地安装的gradle路径),不然编译spring源码的时候会去下载gradle在这里插入图片描述

导入spring源码到IDEA

1.打开spring-framework-5.0.5.RELEASE下的import-into-idea.md,看下官方导入IDEA的步骤

在这里插入图片描述

steps:
1)编译spring-oxm模块,这一步看2.5
2)选择spring-framework-5.0.5.RELEASE下builde.gradle文件导入IDEA
3)排除spring-aspects模块,这一步看2.4

2.导入IDEA步骤

2.1打开IDEA点击import project,不要点open

在这里插入图片描述
然后点击spring-framework-5.0.5.RELEASE下builde.gradle文件在这里插入图片描述

2.2配置项目的gradle

在这里插入图片描述
在这里插入图片描述

2.3项目配置

在这里插入图片描述
在这里插入图片描述

2.4排除spring-aspects模块

spring-aspects模块使用了aspectJ的jar,所以要先排除。不然很可能中途编译spring源码失败,等到spring源码编译好了可以参考spring源码项目使用spring-aspects,配置
在这里插入图片描述

2.5编译spring-oxm

使用gradle :spring-oxm:compileTestJava编译spring-oxm模块,下图是我这边编译成功的图在这里插入图片描述

2.6项目build。

项目build要下载spring-framework需要的jar,此过程一般要很长的时间。如果在项目build的过程中失败,可以重新build或者重新打开项目在这里插入图片描述

2.7查看项目是否build好

项目build好后gradle面板和module面板就是这样的,和刚导入项目时不一样在这里插入图片描述
在这里插入图片描述

2.8编译其他模块.

可能还有其它模块没有编译(如:spring-web、spring-orm。。。),可以选择spring–>Tasks–>other–>compileTestJava编译其他模块在这里插入图片描述
编译好的模块下面一般会有build目录,build目录下有个classes目录存放编译好的字节码文件在这里插入图片描述

3.简单调试

到这里已经构建好了spring源码项目,可以在spring下新建模块来测试环境是否有问题

3.1新建模块

project structure–》modules–》spring–》add–》new module在这里插入图片描述
确保要新建的模块的信息如下图,然后点击next在这里插入图片描述
填好parent、模块名称点击finish,点击ok在这里插入图片描述
稍等一会就可以看到新建的模块
在这里插入图片描述

3.2测试

创建BeanEntity配置类在这里插入图片描述
新建Test测试,从运行结果看完全没有问题在这里插入图片描述
注意:我用的环境:IDEA2019.3, jdk1.8.0_191,spring-framework-5.0.5.RELEASE,gradle-4.4.1
环境不同可能中途会有些其他问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值