1. gradle安装
1.1 下载gradle
gradle官网下载对应的版本,笔者用的6.0.1,下载地址如下https://gradle.org/releases/,找到6.0.1,选择complete连接下载,如下图
1.2 配置环境变量
解压gradle到指定目录,配置环境变量GRADLE_HOME、Path,与JDK类似,如下图
在命令行输入gradle -v,出现如下信息表示安装成功!
2. 准备spring源码工程
因为pom文件自动下载的源码不能在里面写注释,准备源码是后续方便在源码里写注释。
2.1 下载源码
源码下载地址为:https://github.com/spring-projects/spring-framework,
笔者版本为5.2.3.RELEASE,因githup下载速度慢,一是可以FQ下载,二是通过码云克隆镜像,再从码云下载,操作如下:
step1: 登录码云账户,点击右上角+号,新建仓库;
step2: 将spring的githup地址复制到导入已有仓库,并创建;
step3:从码云下载刚刚创建的克隆镜像,注意选择对应版本;
上述step3也可以通过命令行下载git clone -b v5.2.3.RELEASE https://gitee.com/wzj2006/spring-framework.git
速度非常快!
2.2 源码编译
2.2.1 项目导入IDEA
2.2.2 安装kotlin插件,并重启IDEA
2.2.3 IDEA配置gradle
2.2.4 编译spring
在编译前修改build.gradle文件中的仓库,优先选择阿里云,如下
repositories {
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
mavenCentral()
maven { url "https://repo.spring.io/libs-spring-framework-build" }
}
在项目的根目录下执行gradlew :spring-oxm:compileTestJava,如下图所示,表示编译成功,第一次执行需要几分钟,再执行会较快。
3. 准备示例项目工程
step1:创建spring-app项目,IDEA创建maven项目如下图
step2: 引入spring-context、junit、logback依赖
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring.version>5.2.3.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>LATEST</version>
</dependency>
step3: 分别创建SpringHello类、配置文件spring.xml、测试类TestSpring;
step4: 运行测试类结果如下:
4. 源码写注释
maven自动下载的jar包无法在里面写注解,需要将自动下载 jar包替换为源码工程打的jar包,分为以下几步:
step1: 在spring-context的包上右键,选择Open Library Settings;
setp2: 分别加入先前下载的编译后的源码工程的jar包与源文件,如下图:
把原来非源码工程中的两个文件删除。
step5: 调试示例项目工程中中的TestSpring,进入源码,发现可以写注释了,如下图:
接下来会发现一个有趣的现象,写完注释后,再次debug进入后,进不了断点了,原因是java源文件与class文件不一致了,所以每次写完注释后要重新打包源码源码工程中的模块。
step6: 重新编译打包,在gradle中找到相应模块,tasks下面的build,双击jar即可。
5. 总结
本篇主要讲述了环境相关的准备工作,通过一张思维导图总结如下:
后续将通过连载方式一步一步揭开spring的面纱。