Win10 + IDEA2019.3 搭建Spring5.1.x 源码开发环境
本机环境:
- Win10 家庭版64位
- IDEA 2019.3.1
- Spring 5.1.x
- Gradle 5.6.4
- Git 2.20.1
0、编译环境初始化
如上所述的环境都安装好,配置好环境变量:
GRADLE_HOME:
GRADLE_USER_HOME:
然后在CMD查看Gradle的版本如下即表示配置成功:
1、下载Spring源码
- 1、可以从官网下载:Spring-Framework官方Github下载地址
- 2、但是上面这个地址比较慢,你懂的。国内的码云有个同步镜像,每天同步一次,对于只是要学习一下Spring源码的同学来说,这个同步频率的代码足够新了。下载地址:码云镜像:Spring-Framework
我是用git clone 码云的这个镜像下来后,切换到5.1.x 分支。
2、编译-导入源码
Spring-framework的源码目录有个导入IDEA的说明文档:==import-into-idea.md==,内容如下:
_Within your locally cloned spring-framework working directory:_
1. Precompile `spring-oxm` with `./gradlew :spring-oxm:compileTestJava`
2. Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)
3. When prompted exclude the `spring-aspects` module (or after the import via File-> Project Structure -> Modules)
4. Code away
1、我们cmd进入这个根目录,然后先编译spring-oxm这个工程,因为其它spring组件会依赖这个。
2、IDEA里面导入这个根目录工程:
选择Spring-framework目录后,选择导入方式为Gradle,然后点击finish:
3、然后点击File -- Project Structure 进去 modules里面排除 Spring-aspect 目录:
5、然后,修改Gradle配置文件,修改版本为 5.6.4:
D:\Study\Spring-framework-5.1.x-gitee\Spring-Framework\gradle\wrapper\gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=file\:/D:/DevEnv/gradle-5.6.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
==distributionUrl 这个参数的值改为指向你本地的下载的 5.6.4 的zip包路径==
同时修改Cache.properties 里面的Gradle为对应的版本:
D:\Study\Spring-framework-5.1.x-gitee\Spring-Framework.gradle\buildOutputCleanup\cache.properties
然后,在IDEA里面配置Gradle为你自己的版本:
最后,在IDEA里面打开一个终端Terminate,输入命令进行编译即可:
==编译完成后,IDEA会自动建立工程的资源索引,然后展开工程目录,所有的Spring组件包的目录,左侧的文件夹图标都是有右下角那个蓝色标识的,才标识编译完成==
原文地址:https://www.cnblogs.com/xiaocy66/p/12442519.html
- 人们可能会犯的7个数据错误
- java:POI导出excel
- WordPress自定义栏目运用实例III:添加原创/转载文章不同版权声明
- 另一个强大的Visualizers :Mole For Visual Studio
- WordPress自定义栏目运用实例V:为加密文章添加密码提示文字
- java基础:所有参数皆是按值参数
- 使用Hystrix提高系统可用性
- Spring Security笔记:解决CsrfFilter与Rest服务Post方式的矛盾
- GitHub新开放项目FoolNLTK:一个便捷的中文处理工具包
- hessian学习
- 制作WordPress侧边栏“博客统计”小工具并集成在主题中的方法
- Struts2、Spring MVC4 框架下的ajax统一异常处理
- 前11月网游收入1341亿元同比增超两成 你贡献了多少?
- struts2: config-browser-plugin 与 convention-plugin 学习
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【Vue.js】Vue.js组件库Element中的导航菜单、标签页、面包屑和页头
- CentOS7查看硬盘是SSD还是HDD
- 浅谈CentOS防火墙命令
- 【Vue.js】Vue.js组件库Element中的下拉菜单、步骤条、对话框和文字提示
- Win10触控板多指触控、手势操作教程
- 【Vue.js】Vue.js组件库Element中的弹出框、气泡确认框、卡片和走马灯
- 【Vue.js】Vue.js组件库Element中的折叠面板、时间线、分割线和日历
- 从Properties乱码来学习编码
- 【Vue.js】Vue.js组件库Element中的图片、回到顶部、无限滚动和抽屉
- Java逐行读取和写入文件
- Vuejs使用v-for指令实现九九乘法表
- Cypress系列(43)- visit() 命令详解
- 在GitLab pages上快速搭建Jekyll博客
- Dubbo项目中No provider available for the service xxx from registry xxx on the consumer问题的解决思路
- Mysql面对高并发修改的问题处理【2】