Spring源码导入idea

前言

学习源码, 如果没有科学上网, 最好切换为国内源。不然等死了~

构建

spring-framework 导入idea其实在项目根目录下有 import-into-idea.md 说明。

注意: 在idea2018下构建源码始终有各种失败,后来切换为idea2020.2一次成功了。

  1. 首先既然阅读源码,免不了需要加注解,所以最好fork一个仓库
1
git clone https://github.com/qidian360/spring-framework.git
  1. 一般我们都在某个稳定分支操作,所以下载下来后切换到某个稳定分支
1
2
3
4
5
6
7
8
9
10
11
# 查看tag
git tag

# 从tag中检出临时代码
git checkout v5.3.1

# 将该tag检出分支(注意,分支名和tag名不能相同)
git checkout -b 5.3.1

# 查看代码修改状态
git status

build.gradle

项目根目录下 build.gradle 文件

1
2
3
4
5
6
7
8
9
10
repositories {
maven { url "https://maven.aliyun.com/repository/apache-snapshots" }
// maven { url "https://maven.aliyun.com/repository/spring" }
maven { url "https://maven.aliyun.com/repository/google" }
maven { url 'https://maven.aliyun.com/repository/central'}
maven { url "https://maven.aliyun.com/repository/public" }
maven { url "https://repo.spring.io/snapshot" }
mavenCentral()
maven { url "https://repo.spring.io/libs-spring-framework-build" }
}

setting.gradle

项目根目录下setting.gradle(排除掉settings.gradle中的spring-aspects模块)

1
2
3
4
5
6
7
8
9
10
11
12
13
pluginManagement {
repositories {
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
maven { url 'https://maven.aliyun.com/repository/spring-plugin'}
maven { url "https://maven.aliyun.com/repository/public" }
maven { url "https://maven.aliyun.com/repository/central" }
gradlePluginPortal()
maven { url 'https://repo.spring.io/plugins-release' }
}
}

// 注释掉aspects
// include "spring-aspects"

安装gradle环境

按目录 gradle/wrapper/gradle-wrapper.properties 下版本安装并配置环境变量

按照官网导入文档导入(import-into-idea.md)

  1. 在项目根目录下执行 ./gradlew :spring-oxm:compileTestJava
  2. 在项目根目录下执行 ./gradlew :spring-core:compileTestJava
  3. 构建成功后即可导入idea

可能的异常处理

  1. Lock file: /Volumes/cuishiying/source-code/spring-framework/buildSrc/.gradle/6.7/executionHistory/executionHistory.lock
1
find ~/.gradle -type f -name "*.lock" -delete

最后

本文到此结束,感谢阅读。如果您觉得不错,请关注公众号【当我遇上你】,您的支持是我写作的最大动力。