自从迈入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的小伙伴。

使用idea编译spring-framework5.0源码的更多相关文章

  1. 编译hadoop2.2.0源码时报错

    编译hadoop2.2.0源码时, mvn install -DskipTests 报错: [ERROR] COMPILATION ERROR : [INFO] ------------------- ...

  2. [Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程

    本文转载自:[Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程 1 前言 经过3天奋战,终于在Ubuntu 16.04上把Android 6. ...

  3. spring security5.0源码导入idea

    资源路径:链接:https://pan.baidu.com/s/1Xep6hzyIF2a0AtFYDeO_bw提取码:6af8 1.解压源码 2.编译源码     windows下:直接双击gradl ...

  4. 编译Spring5.2.0源码

    下载 spring-framework-5.2.0.RELEASE.zip https://github.com/spring-projects/spring-framework/releases 下 ...

  5. VS2015编译TIFF3.8.0源码

    没有CMakeLists.txt,不能使用CMake GUI了.源文件中有makefile.vc,所以使用nmake 进入VS2015命令行 nmake -f makefile.vc 修改nmake. ...

  6. VS2015编译CURL7.54.0源码

    2018.8.24找到一种新途径,运行curl-master\projects\generate.bat,然后curl-master\projects\Windows\VC14\curl-all.sl ...

  7. Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程

    sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 \  libx11-dev:i386 ...

  8. MyEclipse中导入Spring 4.0源码

    http://www.cnblogs.com/shi-blog/p/4132183.html

  9. 编译安卓7.0源码出现make: *** [ninja_wrapper] Error 1【转】

    本文转载自:https://blog.csdn.net/u010684585/article/details/76263317 32 warnings generated.ninja: build s ...

  10. Mac上编译并运行Android5.0源码

    下载.配置环境.build和运行参考的都是Android Source提供的文档,包括:Initializing a Build Environment,Downloading the Source和 ...

随机推荐

  1. 后缀数组 (Suffix Array) 学习笔记

    \(\\\) 定义 介绍一些写法和数组的含义,首先要知道 字典序 . \(len\):字符串长度 \(s\):字符串数组,我们的字符串存储在 \(s[0]...s[len-1]\) 中. \(suff ...

  2. iOS-UI控件之UITableView(四)- cell数据刷新

    TableView- 数据刷新 数据刷新 添加数据 删除数据 更改数据 全局刷新方法(最常用) [self.tableView reloadData]; // 屏幕上的所有可视的cell都会刷新一遍 ...

  3. Node.js——require加载规则

    判断require中的标识参数: 非路径的标识参数:也被称为是核心模块,已经被编译到二进制文件中 带有路径标识参数:自定义模块,一般都是相对定位 第三方模块:表现形式与核心模块一样,但是实际不一样,它 ...

  4. Ghost Win10系统X64位和32位10041装机版下载

    更多系统下载尽在系统妈:http://www.xitongma.com 特别说明: 1.C:盘分区须至少15GB(安装过程有大量的解压临时文件),安装完成后C:盘占用10GB左右! 2.安装之后如有硬 ...

  5. updating error reports database解决方案

    Window--->Preferences--->General--->Startup and Shutdown--->取消勾选Eclipse Automated Error  ...

  6. 《Java程序设计》课程试题

    < Java程序设计 >课程试题 一.单项选择题(20题:每题2分,共40分) 1.若数组a定义为int[][]a=new int[3][4],则a是___. A)一维数组 B)二维数组 ...

  7. A、B、C、D四个字母,能组成多少个互不相同且无重复三位组合

    package 第五天的作业;/* * A.B.C.D四个字母,能组成多少个互不相同且无重复三位组合 */public class Demo14 { public static void main(S ...

  8. HDU1401 Solitaire

    题目描述:8×8的棋盘上有4个棋子,棋子的运动方法如下:1.如果其上/下/左/右一格没有棋子,则可以去;2.如果其上/下/左/右一格有棋子,而且沿原方向再跳一步没有,则可以去. 给出初始结束位置,问8 ...

  9. Linux下启动tomcat报java.lang.OutOfMemoryError: PermGen space

    一.错误信息 java.lang.reflect.InvocationTargetException    at sun.reflect.NativeMethodAccessorImpl.invoke ...

  10. python爬虫学习,使用requests库来实现模拟登录4399小游戏网站。

    1.首先分析请求,打开4399网站. 右键检查元素或者F12打开开发者工具.然后找到network选项, 这里最好勾选perserve log 选项,用来保存请求日志.这时我们来先用我们的账号密码登陆 ...