时间:2021-05-19
环境:IDEA2019.3, jdk1.8.0_191,spring-framework-5.0.5.RELEASE,gradle-4.4.1
spring源码放在了github,点击如下图中的按钮访问(有可能访问不了github官网,可参考此处)
如下图步骤选择要下载的spring源码版本
点击code–》Download ZIP下载
解压到某个目录下
到解压的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
steps:
1)编译spring-oxm模块,这一步看2.5
2)选择spring-framework-5.0.5.RELEASE下builde.gradle文件导入IDEA
3)排除spring-aspects模块,这一步看2.4
然后点击spring-framework-5.0.5.RELEASE下builde.gradle文件
spring-aspects模块使用了aspectJ的jar,所以要先排除。不然很可能中途编译spring源码失败,等到spring源码编译好了可以参考spring源码项目使用spring-aspects,配置
使用gradle :spring-oxm:compileTestJava编译spring-oxm模块,下图是我这边编译成功的图
项目build要下载spring-framework需要的jar,此过程一般要很长的时间。如果在项目build的过程中失败,可以重新build或者重新打开项目
项目build好后gradle面板和module面板就是这样的,和刚导入项目时不一样
可能还有其它模块没有编译(如:spring-web、spring-orm。。。),可以选择spring–>Tasks–>other–>compileTestJava编译其他模块
编译好的模块下面一般会有build目录,build目录下有个classes目录存放编译好的字节码文件
到这里已经构建好了spring源码项目,可以在spring下新建模块来测试环境是否有问题
project structure–》modules–》spring–》add–》new module
确保要新建的模块的信息如下图,然后点击next
填好parent、模块名称点击finish,点击ok
稍等一会就可以看到新建的模块
创建BeanEntity配置类
新建Test测试,从运行结果看完全没有问题
注意:我用的环境:IDEA2019.3, jdk1.8.0_191,spring-framework-5.0.5.RELEASE,gradle-4.4.1
环境不同可能中途会有些其他问题
到此这篇关于如何导入spring源码到IDEA的文章就介绍到这了,更多相关导入spring源码到IDEA内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
内容概览使用IDEA2020.1构建Spring5.2.x源码环境源码:spring5.2.xjdk11.08idea2020.1springspring5.2
本篇主要讲解如何使用Ideal搭建Spring的源码环境,想必大家都会多多少少去看过Spring的部分源码,一般我们都是直接点进某个Spring类然后Idea上
1克隆Spring源码github下载可能较慢,可以先fork官方仓库到自己的账户下,再从gitee导入。使用sourceTree拉取代码到本地。切换到5.2.
Idea导入现有的Web项目并发布到Tomcat,发现Tomcat没有自动发布问题:导入一个Web项目时,idea并没有把他当成web,所以需要自己修改项目结构
今天给大家介绍IDEA开发工具如何配置devtools热加载工具。1、devtools原理介绍spring-boot-devtools是spring为开发者提供