美文网首页
002-【Spring】源码编译

002-【Spring】源码编译

作者: 糖纸疯了 | 来源:发表于2022-02-18 22:48 被阅读0次

    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)测试结果

    相关文章

      网友评论

          本文标题:002-【Spring】源码编译

          本文链接:https://www.haomeiwen.com/subject/tjculrtx.html