如何编译运行Spring源码

简述

现如今SpringBootSpringCloud等框架是现代企业项目后端使用的主流框架,但这些框架技术都是在Spring框架基础上进行扩展,如果把Spring框架整明白了,其他框架理解起来就非常easy,搞懂Sping那么Spring源码必看

前置

环境介绍

  • IDEA 2020.2.xx
  • JDK8或者8以上
  • Maven3.6 (版本随意)
  • Gradle5.6.4 (最好版本一致)

接下来介绍Spring5.2.x版本源码下载到Idea编译运行整个流程

流程

下载安装Gradle

下载

下载地址:https://services.gradle.org/distributions/ 推荐下载gradle-x.x.x-all.zip的版本,-all的版本防止编译时少文件,带来不必要的麻烦

下载如图所示:

如何编译运行Spring源码

安装

1.配置GRADLE_HOME环境变量

如何编译运行Spring源码

2.配置GRADLE_USER_HOME仓库(指定盘存放jar)

如何编译运行Spring源码

3.配置path环境变量

如何编译运行Spring源码

4.gradle环境验证,输入CMD打开终端,然后输入gradle -v进行检测,如果正常将输出以下信息

如何编译运行Spring源码

下载Spring源码并编译运行

下载

1.选择5.2.x分支,选择zip文件进行下载

下载地址:https://github.com/spring-projects/spring-framework/

2.解压zip进入至项目根目录spring-framework-5.2.x,然后编辑build.gradle文件,在标签里面添加maven阿里源

// 新增阿里云仓库
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
// 新增springsource仓库
maven { url "http://repo.springsource.org/plugins-release" }
maven { url "https://repo.spring.io/plugins-release" }

编辑之后,repositories 内容如下

repositories {
   // 新增阿里云仓库
            maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
            // 新增springsource仓库
            maven { url "http://repo.springsource.org/plugins-release" }
            maven { url "https://repo.spring.io/plugins-release" }
   // mavenCentral()
   maven { url "https://repo.spring.io/libs-spring-framework-build" }
      maven { url "https://repo.spring.io/milestone"}
 }

3.修改gradle-wrapper.gradle文件distributionUrl属性的值,改成引用本地下载的gradle-5.6.4-all.zip文件

#distributionUrl=https://services.gradle.org/distributions/gradle-5.6.4-bin.zip
distributionUrl=file:///E:/GoogleChromeFileData/gradle-5.6.4-all.zip

gradle-wrapper.gradle最终内容

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
#distributionUrl=https://services.gradle.org/distributions/gradle-5.6.4-bin.zip
distributionUrl=file:///E:/GoogleChromeFileData/gradle-5.6.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
编译

1.在项目的根目录spring-framework-5.2.x找到gradlew.bat文件执行编译,或者在终端输入**./gradlew :spring-oxm:compileTestJava**命令进行编译,该命令在import-into-idea.md文件中有详细说明

如何编译运行Spring源码


输入**./gradlew :spring-oxm:compileTestJava**或者启动gradlew.bat文件,最终终端正常输出效果如下:

如何编译运行Spring源码

注意:git问题自行百度解决即可

2.将项目导入idea中,刷新gradle进行构建编译项目,最终效果如下

如何编译运行Spring源码

运行测试

在Spring源码基础上扩展一个test-demo模块,为了测试Spring的功能,需要在该模块引入Spring四个核心模块(core,context,expression, beans),同时我也引入了AOP模块。

修改test-demo模块的bulid.gradle文件,添加对五个模块的依赖

dependencies {
    implementation 'junit:junit:4.12'
    testCompile group: 'junit', name: 'junit', version: '4.12'

    compile(project(":spring-core"))
    compile(project(":spring-context"))
    compile(project(":spring-beans"))
    compile(project(":spring-expression"))
    compile(project(":spring-aop"))
}

为了测试Spring功能是否可以使用,在test-demo模块中,创建了一个BeansManage.xml文件,并注入了一个User Bean对象。

如何编译运行Spring源码

通过MainApp类对User Bean的获取,程序代码如下

如何编译运行Spring源码

运行MainApp程序,正常获取到IOC容器注入的User Bean,最终正常输出结果如下

> Task :test-demo:MainApp.main()
xiao mi

BUILD SUCCESSFUL in 10s

最后

如果大家看到这里,说明已经成功编译运行Sping源码。

原文始发于微信公众号(行走318川藏线):如何编译运行Spring源码

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/20901.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!