自从迈入java开发这个行当,从来没有好好的研究过源码,深感惭愧,话不多说,今天上一篇使用idea编译spring5.0源码。

以下在win中构建和编译过程分为

  1. jdk环境的配置
  2. gradle的下载和安装
  3. spring-framework的下载和构建
  4. 创建新moudle验证编译是否成功

一、window环境下jdk的配置

该部分请不清楚的小伙伴参照其他文章执行,再次不在赘述,本文中使用jdk1.8.0_131

二、spring-frameword 是由gradle构建,下面来下载和安装

下载和选择

  1. 下载地址:https://services.gradle.org/distributions/
  2. 根据spring的版本,当前使用的spring-frameword是使用gradle-4.4编译的,此处选择4.9-bin安装包即可。

安装:

  1. 选择安装路径,最好是英文目录
  2. 解压gradle-4.9-bin.zip
  3. 配置环境变量

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预先构建如下四个目录

  1. ./gradlew :spring-oxm:compileTestJava
  2. ./gradlew :spring-core:compileTestJava
  3. ./gradlew :spring-context:compileTestJava
  4. ./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的小伙伴。

最新文章

  1. 调用线程无法访问此对象,因为另一个线程拥有该对象 [c# wpf定时器程序报的错误]
  2. C#:时间转换
  3. 网上找的Gif图片解析类
  4. 新浪SAE部署 503 JDK版本冲突解决
  5. BZOJ 1452 Count(二维树状数组)
  6. UVa 1402 Runtime Error 伸展树
  7. FastSocket学习笔记~制定自已的传输协议
  8. 使用IntelliJ Idea创建Spring MVC项目
  9. My97datepicker设置后一个日期大于前一个日期
  10. PHP中使用cURL
  11. 运用Unity实现AOP拦截器
  12. checkinstall包的使用
  13. CentOs下安装PHP环境的步骤
  14. [Maven] Missing artifact
  15. xadmin 数据添加报错: IndexError: list index out of range
  16. redis 系列17 持久化 AOF
  17. WebView内存泄露的解决方案
  18. 移动端H5混合开发设置复盘与总结
  19. C# sapnco支持.net 4.5了,真是个意外的发现
  20. 软件工程实践-git的使用

热门文章

  1. CentOS 7 下用 firewall-cmd / iptables 实现 NAT 转发供内网服务器联网
  2. 解决::processDebugResourcesERROR: In<declare-styleable> FontFamilyFont编译报错
  3. 原生开发之css样式问题(持续更新)
  4. Apache Tomcat 之路(二 部署web 应用程序)
  5. JavaScript回文数
  6. 解决vue项目eslint校验 Do not use 'new' for side effects 的两种方法
  7. 如何优化LIMIT
  8. php基础排序算法
  9. CentO7-使用plantuml绘制UML类图
  10. Hibernate-02