Spring5.2.x源码构建
¶windows构建环境
- idea2020.2.3
- [gradle5.6.4](http://services.gradle.org/distributions/ )
- jdk8u265
- spring5.2.x
- aspectj1.9
¶gradle安装配置
Gradle可在所有主要操作系统上运行,并且仅需要安装Java JDK版本8或更高版本。 要检查,请运行java -version:
1 | $ java -version |
-
下载gradle5.6.4 ,gradle分两个版本:
- Binary-only,精简版。
- Complete ,带有文档和源代码。
-
解压发行包。
使用文件资源管理器创建一个新目录
C:\Gradle
。打开第二个“文件资源管理器”窗口,然后转到下载Gradle发行版的目录。 双击ZIP存档以显示内容。 将内容文件夹gradle-6.7拖到新创建的
C:\Gradle
文件夹中。或者,您可以使用所选的存档器工具将Gradle发行版ZIP压缩进
C:\Gradle
。 -
配置gradle系统环境环境
GRADLE_HOME 配置的是gradle
的安装目录。
**GRADLE_USER_HOME **配置的是gradle
下载的文件本地仓库存储地址。
然后将%GRADLE_HOME%\bin
添加到系统变量Path中去。
如果之前配置的maven变量名为MAVEN_HOME
,则将其改为M2_HOME
,因为后面gradle中mavenLocal()函数将会识别M2_HOME
变量。
¶jdk安装
jdk需要选择OpenJDK发行版,我们平常很多人用的都是OracleJDK,但是OracleJDK不包括JFR类。jdk版本要求是jdk8u262及其以上版本。
配置jdk环境变量
将%JAVA_HOME%\bin
添加到系统变量Path中去。
¶aspectj1.9下载安装配置
- 下载aspectj,并直接下一步进行完整安装。
- 配置aspectj环境变量。
- 将
aspectjrt.jar
添加到你的classpath中去。- copy
aspectjrt.jar
to thejdk/jre/lib/ext
directory - add
aspectjrt.jar
to your CLASSPATH environment variable (see the next section for details) - always use the “
-classpath aspectjrt.jar
” option when running programs compiled with ajc
- copy
- 将
C:\aspectj1.9\bin
配置到系统变量Path中去。
- 将
¶获取spring源码
-
通过命令行
git clone git@github.com:spring-projects/spring-framework.git
cd spring-framework
-
通过构建工具
当导入idea2020.2.3中时,会检测到gradle项目并进行自动构建。
¶通过命令行进行构建
通过命令gradlew build
进行编译、测试和生成所有 jar、distribution zips 和文档。
打开cmd工具,cd到spring源码根目录。
然后执行如下命令:
1 | gradlew :spring-oxm:compileTestJava |
此时由于是国内环境,则无法链接https://services.gradle.org/distributions/gradle-5.6.4-bin.zip
下载gradle-5.6.4-bin.zip。报错
1 | Exception in thread "main" java.net.UnknownHostException: services.gradle.org |
遇到无法下载jar包问题,基本都跟网络环境有关系。
解决办法:
¶1、用梯子进行jar包下载并构建
- 执行
gradlew :spring-oxm:compileTestJava
,就会很快构建成功了。
-
导入到idea中,操作步骤如下:
File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle
-
导入完成后,idea会自动构建。
当spring-aspects
模块出现错误提示时,可以对idea进行如下设置。
同样的步骤再设置下spring-aop.main。
至此就彻底构建成功!
¶2、用idea配置的gradle进行下载构建。
-
配置gradle国内镜像
在gradle安装目录下
init.d
文件中新建init.gradle
文件并添加如下内容。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15allprojects {
repositories {
maven {
url 'https://maven.aliyun.com/repository/public/'
}
maven {
url 'https://maven.aliyun.com/repository/spring/'
}
maven{
url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
}
mavenLocal()
mavenCentral()
}
} -
idea中gradle配置
配置完后就可以直接进行构建了。