整体流程:

  1. 本地环境准备
  2. 找到源码地址并拉取到本地
  3. 根据IDE工具查看源码中提供的不同的安装说明并具体操作
  4. 构建会出现的的错误及解决

一.本地环境准备

  spring-framework 源码使用gradle构建的而不是maven,因此对于只熟悉maven的小伙伴儿们可能会多一个环节,不过不用怕,也很简单

  gradle官网https://services.gradle.org/distributions/上下载对应的版本

  

下载后解压并复制根目录的路径

在电脑环境变量中加入

GRADLE_HOME是上述复制的根路径

GRADLE_USER_HOME配置的是以前的maven仓库,变量名不能变动,gradle仓库可以复用maven仓库,这还是挺好的哈!

别忘了还要在path中配置一下

保存确定后cmd中查看一下是否安装成功

另一个IDE工具我用的是idea

二.找到源码地址并拉取到本地

  上github上找到spring-framework项目并获取下载地址

三.根据IDE工具查看源码中提供的不同的安装说明并具体操作

  源码下载后查看对应IDE工具的安装说明

打开import-into-idea.md

步骤中重点提一下第一步,在导入idea中要提前编译一下,不然会报错

进入源码的根目录中

进入dos命令窗口输入gradlew :spring-oxm:compileTestJava    在这里我犯了次傻,直接复制粘贴了./gradlew :spring-oxm:compileTestJava

这对于我首次用gradle的我真的是太残忍了

后面想了想,我本地是window系统,“./”似乎是类似shell脚本中的执行exe文件,于是我去掉了“./”,成功了,哈哈!

一段时间后提示成功

idea中从文件中new一个项目,注意选中到gradle.build,我之前只选到根目录似乎出现了问题哈

四.构建会出现的的错误及解决

  导入成功后构建过程中出现了好多次报错问题,也由于怀疑自己,重新下载了几次源码,网上查的问题是idea版本和gradle需要对应,这种答案似乎都不准确

  我本地是idea2018.1和gradle6.4.1,最终构建成功了

  最终build.gradle中有两个地方有大的改动,如下

buildscript {
repositories {
mavenLocal()
maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
maven { name "Bstek" ; url "http://nexus.bsdn.org/content/groups/public/" }
maven { url "http://repo.springsource.org/plugins-release" }
mavenCentral()
}
dependencies {
classpath("io.spring.gradle:propdeps-plugin:0.0.9.RELEASE")
classpath("org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.16")
}
}
repositories {
mavenLocal()
maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
maven { name "Bstek" ; url 'http://nexus.bsdn.org/content/groups/public/' }
maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
maven { url "http://repo.springsource.org/plugins-release" } <-------------------------这个加入后里面下载插件的错误就解决了
mavenCentral()
}
 

按照安装说明排除掉“spring-aspects”模块

构建成功效果图

构建过程可能还会出现很多问题,解决了构建问题,接下来才能正式啃spring源码这块硬骨头,不说了,我要去啃了,泪崩!

最新文章

  1. [ASP.NET MVC] 利用自定义的AuthenticationFilter实现Basic认证
  2. 腾讯QQ形象18年变迁史,最早的QQ企鹅形象居然长这样!
  3. 证书与keytool
  4. 基于OCILIB的oracle数据库操作总结及自动生成Model和Dao的工具
  5. leetcode problem 37 -- Sudoku Solver
  6. ECMAScript位操作符
  7. 开发指南专题4:JEECG高速微云开发平台--JEECG开发环境的搭建
  8. (转)Mysql哪些字段适合建立索引
  9. 第65节:Java后端的学习之Spring基础
  10. Announcing the Updated NGINX and NGINX Plus Plug‑In for New Relic (Version 2)
  11. Hive介绍及安装
  12. Django学习(5)优雅地分页展示网页
  13. 【Python】JBOSS-JMX-EJB-InvokerServlet批量检测工具
  14. [转] 理解Web路由
  15. JSONPath使用说明
  16. tflearn 实现DNN 全连接
  17. sql—常用函数
  18. PyQt: eg2
  19. RotbotFrameWork接口测试
  20. hdu 3339 In Action (最短路径+01背包)

热门文章

  1. centos6下filebeat多开问题
  2. php-fpm搜索php.ini很奇怪的一个现象
  3. 数据分析之Numpy、Matplotlib库
  4. scrapy框架之CrawlSpider全站自动爬取
  5. mpvue从一无所有开始仿大众点评小程序
  6. form和table的区别
  7. 新概念英语三 新东方主讲Lesson1
  8. mysql单记录也能造成的死锁
  9. Freemarker + iTextRender 实现根据模板网页生成PDF
  10. tomcat——启动项目报错:java.lang.IllegalStateException