Spring源码编译
1、理解编译过程
- 1)Spring源码依赖gradle进行编译
- 2)不同版本的Spring依赖的gradle版本不一样,但是同一台电脑可以同时安装多个gradle
使用不同的gradle,要修改对应的环境变量对应的地址
- 3)要修改源码中的仓库地址和JVM内存才能完成编译
0)成功版安装参考[V5.0版本]:https://www.jianshu.com/p/02f17909e2d6
1)添加gradle仓库,不要删除原来的仓库
2)将build.gradle和gradlew可执行文件中的参数配置调到1024->2048
3)先执行gradle
4)再根据import-into-idea.md中去执行对应的命令
5)Spring版本说明:V5.0版本的时候在build.gradle指明了gradle的版本,本地的gradle版本要保持一致
6)在Spring5.1版本中就没有指定版本了,如果Gradle的版本太高,Gradle中的Kotlin版本也会受到影响
2、代码修改
- 1)代码拉取
git clone https://gitee.com/Z201/spring-framework.git -b 5.2.x
- 2)修改文件
一定要先找到这些文件进行修改,然后执行./gradlew :spring-oxm:compileTestJava命令(import-into-idea.md)文件中的要求进行顺序执行
- 3)修改文件-gradle-wrapper.properties
搜索关键字:distributionUrl=file:///Applications/0ENZO/Installs/gradle/gradle-5.6.4-bin.zip
- 4)修改文件-build.gradle
【取消插件】+【添加国内仓库】
搜索关键字1:io.spring.gradle-enterprise-conventions
搜索关键字2: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" }
}
- 5)修改文件-build.properties
version=5.2.9.BUILD-SNAPSHOT
#新增如下配置,解决heap堆内存空间不够问题
org.gradle.jvmargs=-Xms2048m -Xmx4096m
org.gradle.caching=true
org.gradle.parallel=true
gradlePropertiesProp=gradlePropertiesValue
sysProp=shouldBeOverWrittenBySysProp
systemProp.system=systemValue
org.gradle.daemon=true
org.gradle.configureondemand=true
- 6)修改文件-gradlew
搜索关键字:DEFAULT_JVM_OPTS='"-Xmx1024m" "-Xms1024m"'
3、执行脚本
修改上面的配置之后,gradle因为已经配置了新的运行内存,gradle本地安装路径,国内镜像仓库等,使用IDEA打开就可以正常的添加依赖了(可以使用CMD或者IDEA控制台)
./gradlew :spring-oxm:compileTestJava
4、创建模块验证Spring源码编译
- 1)创建module
- 2)选择gradle模块
- 3)填写模块名
- 4)添加context依赖
compile(project(":spring-context"))
- 5)添加测试内容
参考git地址:https://gitee.com/enzoism/spring-frame-work-5.2.9/tree/master/a-spring-test
- 6)测试结果
网友评论