• 编译Spring源码省心小贴士


    主要参考文档

    国外:

    国内:

    必要操作

    如果导入 Idea,需要在 Spring-Framework 根目录下执行以下脚本:

    gradlew :spring-oxm:compileTestJava
    

    spring-core 模块下执行

    gradle cglibRepackJar
    gradle objenesisRepackJar
    

    提速优化建议

    Spring 下载提速

    git clone https://gitee.com/mirrors/Spring-Framework.git
    

    JDK 下载加速

    推荐 清华大学镜像

    指定本地 gradle-bin.zip

    修改 Spring-Framework 项目目录下的 gradlewrappergradle-wrapper.properties 文件

    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    ## distributionUrl=https://services.gradle.org/distributions/gradle-6.6-bin.zip
    distributionUrl=file:///d:/lib/gradle/gradle-6.6-bin.zip
    zipStoreBase=GRADLE_USER_HOME
    zipStorePath=wrapper/dists
    

    这样可以免去多次下载gradle的功夫。
    download gradle

    依赖下载慢的问题

    修改 Spring-Framework 项目目录下的 build.gradle 文件

    repositories {
          maven { url "https://maven.aliyun.com/repository/public" }
          mavenCentral()
          maven { url "https://repo.spring.io/libs-spring-framework-build" }
          maven { url "https://repo.spring.io/milestone" } // Reactor
    }
    

    增加阿里云国内镜像,下载速度蹭蹭蹭~ 阿里云仓库指南,见下图(更新与2020-09-05)

    定位“个性化”问题

    gradlew build --info
    


    通过命令行的方式,可以看到报错找到自己编译过程的特殊报错问题,“对症下药”。

    构建成功标志

    • 如果上一节 gradlew build 执行成功,那么此处应该也能刷新成功并出现一个个的子任务
    • 如果依赖没有什么改变,可以选择开启“离线模式”,构建速度会更快!

    运行debug遇到常见错误


    CoroutinesUtils 是 Kotlin 的一个工具类。
    Spring-Frameworkspring-corekotlin-coroutinesuildlibskotlin-coroutines-5.3.0-SNAPSHOT.jar 添加为 spring.spring-core.main 的依赖,详细参考 https://www.bilibili.com/read/cv6134966/


    右击 spring-instrumentsrc estjava 文件夹,执行Run 'All Tests',在 spring-instrument 生成一个 out 文件夹 详细参考如何编译spring的源码

  • 相关阅读:
    Mybatis JPA 插件简介(v2.1.0)
    linux-非root用户运行tomcat
    java版Web Socket,实现消息推送
    开源巨献:Google最热门60款开源项目
    java加密算法AES与RSA
    Jquery table元素操作-创建|数据填充|重置|隐藏行
    Mybatis JPA-集成方案+源码
    Mybatis JPA 插件简介
    eclipse maven构建
    初探JSP运行机制和与Servlet间的关系
  • 原文地址:https://www.cnblogs.com/kendoziyu/p/13618723.html
Copyright © 2020-2023  润新知