# spring-framework-learn **Repository Path**: pi-laoban/spring-framework-learn ## Basic Information - **Project Name**: spring-framework-learn - **Description**: Spring5源码分析注释 原有仓库丢失 - 现重新建立 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-08-23 - **Last Updated**: 2022-10-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring5源码分析 具体版本号:`v5.2.9.RELEASE` # 开发工具 ``` jdk8 IDEA spring-5.2.8.RELEASE ``` 没有下载具体版本的`Gradle`,仅使用`Gradle Wrapper`的方式 介于C盘的大小,改变了`.gradle`的路径 新增环境变量 ``` GRADLE_USER_HOME=D:\.gradle ``` # 下载源码 ``` git clone --branch v5.2.9.RELEASE https://gitee.com/mirrors/spring-framework.git ``` # 改动 ## `build.gradle`文件改动 1. 将`plugins`标签下的 `io.spring.gradle-enterprise-conventions`插件注释掉 2. 将`repositories`下的加入阿里云的镜像 ```groovy repositories { maven { url 'https://maven.aliyun.com/repository/public/'} maven { url 'https://maven.aliyun.com/repository/spring/'} mavenLocal() mavenCentral() maven { url "https://repo.spring.io/libs-spring-framework-build" } } ``` ## `settings.gradle`文件改动 1. `repositories`下加入阿里云镜像 ```groovy repositories { maven { url 'https://maven.aliyun.com/repository/public/' } gradlePluginPortal() maven { url 'https://repo.spring.io/plugins-release' } } ``` ## 将项目缩进全部改为空格(非必要) 编辑`.editorconfig`文件 ``` indent_style = tab 改为 indent_style = space ``` 改完后使用格式化就会使用4个空格进行缩进 # IDEA导入工程 等待编译完成即可 # 创建测试工程后 `CompilerConventionsPlugin`文件改动 ​ 将`-Werror`参数去掉 ## 跳过代码测试 `gradle build -x test` # 参考博客 ``` https://www.cnblogs.com/huangxiufen/p/15003428.html https://gitee.com/zhong96/spring-framework-analysis ``` # ★巨坑★ 在`spring-aop`模块下有一个包`org.springframework.aop.target` `.gitignore`文件中配置了一条`target/`的忽略项 当我自己重新建立`git`仓库重新提交记录时`org.springframework.aop.target`包下的文件不会被`git add .`添加到管理中,反而被忽略掉 本地运行没有问题,但是推到远程仓库会丢失掉`org.springframework.aop.target`包下的源码,其他人拉取下来编译就报错 所以要把`org.springframework.aop.target`包下的文件添加到`git`的管理范围 在`.gitignore`文件中添加 ``` !spring-aop/src/main/java/org/springframework/aop/target ```