如何导入spring源码到IDEA

目录

  • 前期准备
    • 1.访问spring官网下载spring framework源码
    • 2.安装gradle
  • 导入spring源码到IDEA
    • 1.打开spring-framework-5.0.5.RELEASE下的import-into-idea.md,看下官方导入IDEA的步骤
    • 2.导入IDEA步骤
      • 2.1打开IDEA点击import project,不要点open
      • 2.2配置项目的gradle
      • 2.3项目配置
      • 2.4排除spring-aspects模块
      • 2.5编译spring-oxm
      • 2.6项目build。
      • 2.7查看项目是否build好
      • 2.8编译其他模块.
    • 3.简单调试
      • 3.1新建模块
      • 3.2测试
环境:IDEA2019.3, jdk1.8.0_191,spring-framework-5.0.5.RELEASE,gradle-4.4.1

前期准备
1.访问spring官网下载spring framework源码
如何导入spring源码到IDEA
文章图片

spring源码放在了github,点击如下图中的按钮访问(有可能访问不了github官网,可参考此处)
如何导入spring源码到IDEA
文章图片

如下图步骤选择要下载的spring源码版本
如何导入spring源码到IDEA
文章图片

点击code–》Download ZIP下载
如何导入spring源码到IDEA
文章图片

解压到某个目录下
如何导入spring源码到IDEA
文章图片


2.安装gradle
到解压的spring源码目录下spring-framework-5.0.5.RELEASE\gradle\wrapper,打开gradle-wrapper.properties文件查看需要安装的gradle版本(此处:gradle-4.4.1-bin.zip)。
如何导入spring源码到IDEA
文章图片

访问gradle官网https://gradle.org/releases/,下滑找到需要的版本,点击binary-only下载
如何导入spring源码到IDEA
文章图片

直接解压到你想要的目录下
如何导入spring源码到IDEA
文章图片

在gradle的init.d目录下新建build.gradle,写入如下代码。目的是编译源码的时候快些
如何导入spring源码到IDEA
文章图片

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_URLurl 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_URLurl ALIYUN_JCENTER_URL}} }}

设置gradle的环境变量(类似设置jdk的环境变量)。新建GRADLE_HOME系统变量,变量值为自己解压的gradle目录
如何导入spring源码到IDEA
文章图片

编辑path变量,在后面追加%GRADLE_HOME%\bin
如何导入spring源码到IDEA
文章图片

cmd输入gradle -v验证是否安装并配置好gradle。如下图所示那样就已经配置好gradle了
如何导入spring源码到IDEA
文章图片

新建gradle仓库(repository),比如:
如何导入spring源码到IDEA
文章图片

这一步可以不做,改下spring源码目录下spring-framework-5.0.5.RELEASE\gradle\wrappe\gradle-wrapper.properties文件的distributionUrl的值(本地安装的gradle路径),不然编译spring源码的时候会去下载gradle
如何导入spring源码到IDEA
文章图片


导入spring源码到IDEA
1.打开spring-framework-5.0.5.RELEASE下的import-into-idea.md,看下官方导入IDEA的步骤
如何导入spring源码到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源码到IDEA
文章图片

然后点击spring-framework-5.0.5.RELEASE下builde.gradle文件
如何导入spring源码到IDEA
文章图片


2.2配置项目的gradle 如何导入spring源码到IDEA
文章图片

如何导入spring源码到IDEA
文章图片


2.3项目配置 如何导入spring源码到IDEA
文章图片

如何导入spring源码到IDEA
文章图片


2.4排除spring-aspects模块 spring-aspects模块使用了aspectJ的jar,所以要先排除。不然很可能中途编译spring源码失败,等到spring源码编译好了可以参考spring源码项目使用spring-aspects,配置
如何导入spring源码到IDEA
文章图片


2.5编译spring-oxm 使用gradle :spring-oxm:compileTestJava编译spring-oxm模块,下图是我这边编译成功的图
如何导入spring源码到IDEA
文章图片


2.6项目build。 项目build要下载spring-framework需要的jar,此过程一般要很长的时间。如果在项目build的过程中失败,可以重新build或者重新打开项目
如何导入spring源码到IDEA
文章图片


2.7查看项目是否build好 项目build好后gradle面板和module面板就是这样的,和刚导入项目时不一样
如何导入spring源码到IDEA
文章图片

如何导入spring源码到IDEA
文章图片


2.8编译其他模块. 可能还有其它模块没有编译(如:spring-web、spring-orm。。。),可以选择spring–>Tasks–>other–>compileTestJava编译其他模块
如何导入spring源码到IDEA
文章图片

编译好的模块下面一般会有build目录,build目录下有个classes目录存放编译好的字节码文件
如何导入spring源码到IDEA
文章图片


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

3.1新建模块 project structure–》modules–》spring–》add–》new module
【如何导入spring源码到IDEA】如何导入spring源码到IDEA
文章图片

确保要新建的模块的信息如下图,然后点击next
如何导入spring源码到IDEA
文章图片

填好parent、模块名称点击finish,点击ok
如何导入spring源码到IDEA
文章图片

稍等一会就可以看到新建的模块
如何导入spring源码到IDEA
文章图片


3.2测试 创建BeanEntity配置类
如何导入spring源码到IDEA
文章图片

新建Test测试,从运行结果看完全没有问题
如何导入spring源码到IDEA
文章图片

注意:我用的环境:IDEA2019.3, jdk1.8.0_191,spring-framework-5.0.5.RELEASE,gradle-4.4.1
环境不同可能中途会有些其他问题
到此这篇关于如何导入spring源码到IDEA的文章就介绍到这了,更多相关导入spring源码到IDEA内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    推荐阅读