使用idea编译spring-framework5.0源码
自从迈入java开发这个行当,从来没有好好的研究过源码,深感惭愧,话不多说,今天上一篇使用idea编译spring5.0源码。
以下在win中构建和编译过程分为
- jdk环境的配置
- gradle的下载和安装
- spring-framework的下载和构建
- 创建新moudle验证编译是否成功
一、window环境下jdk的配置
该部分请不清楚的小伙伴参照其他文章执行,再次不在赘述,本文中使用jdk1.8.0_131
二、spring-frameword 是由gradle构建,下面来下载和安装
下载和选择
- 下载地址:https://services.gradle.org/distributions/
- 根据spring的版本,当前使用的spring-frameword是使用gradle-4.4编译的,此处选择4.9-bin安装包即可。
安装:
- 选择安装路径,最好是英文目录
- 解压gradle-4.9-bin.zip
- 配置环境变量
GRADLE_HOME:
GRADLE_REPOSTORY_HOME:gradle的仓库地址
三、spring-framework 的下载和构建
下载地址1:官网:https://github.com/spring-projects/spring-framework
下载地址2:5.0源码(未编译):https://github.com/escaperun/Spring-Framework-master-5.0.x.git
构建:
构建之前请阅读:spring提供了eclipse和idea两种IDE的方式,本文使用idea
阅读引入idea的文件,发现,在构建直线我们需要预先构建 spring-oxm、spring-core,本文提议使用CMD预先构建如下四个目录
- ./gradlew :spring-oxm:compileTestJava
- ./gradlew :spring-core:compileTestJava
- ./gradlew :spring-context:compileTestJava
- ./gradlew :spring-beans:compileTestJava
预编译完成:
5.引入idea Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle);
6.引入完成,等待构建完毕,时间长短取决于网速。
No such property: values for class: org.gradle.api.internal.tasks.DefaultTaskDependency
Possible solutions: values
编译不通过,处理方式:
7. spring-aspects 编译的过程中会出问题,这里我们把它移除
8.new Module,然后引入依赖
9. 创建测试方法,然后build
10.执行测试方法
至此,spring源码的编译和测试工作完成,我们可以愉快地进行debug了。
如果没有成功,那么就直接下载吧
编译好的spring5.0地址 :
链接:https://pan.baidu.com/s/1AcQp7KUswXPFoEzXx3X8uA
提取码:p3pk
ps:本文有不足支出,还望各位小伙伴批评指正,希望能帮助想了解spring的小伙伴。
最新文章
- 调用线程无法访问此对象,因为另一个线程拥有该对象 [c# wpf定时器程序报的错误]
- C#:时间转换
- 网上找的Gif图片解析类
- 新浪SAE部署 503 JDK版本冲突解决
- BZOJ 1452 Count(二维树状数组)
- UVa 1402 Runtime Error 伸展树
- FastSocket学习笔记~制定自已的传输协议
- 使用IntelliJ Idea创建Spring MVC项目
- My97datepicker设置后一个日期大于前一个日期
- PHP中使用cURL
- 运用Unity实现AOP拦截器
- checkinstall包的使用
- CentOs下安装PHP环境的步骤
- [Maven] Missing artifact
- xadmin 数据添加报错: IndexError: list index out of range
- redis 系列17 持久化 AOF
- WebView内存泄露的解决方案
- 移动端H5混合开发设置复盘与总结
- C# sapnco支持.net 4.5了,真是个意外的发现
- 软件工程实践-git的使用
热门文章
- CentOS 7 下用 firewall-cmd / iptables 实现 NAT 转发供内网服务器联网
- 解决::processDebugResourcesERROR: In<;declare-styleable>; FontFamilyFont编译报错
- 原生开发之css样式问题(持续更新)
- Apache Tomcat 之路(二 部署web 应用程序)
- JavaScript回文数
- 解决vue项目eslint校验 Do not use &#39;new&#39; for side effects 的两种方法
- 如何优化LIMIT
- php基础排序算法
- CentO7-使用plantuml绘制UML类图
- Hibernate-02