Spring5.1源码编译 (Spring源码学习 一 )

Spring5.1.x源码编译是个没有技术含量,但是很难成功的,折腾了好久,电脑还蓝屏。

学习Java,肯定要学Spring框架,学了Spring,找工作肯定问框架源码,学源码你得自己会编译,不然写个注释还得粘贴出来,总的来说,你得学会源码编译。


第一步:下载Spring源码+Gradle

源码地址:https://github.com/spring-projects/spring-framework。选择具体的 branches

                 Spring5.1.x https://github.com/spring-projects/spring-framework.git  随你git clone,还是download zip.

1.1 观察文档

 下载完成后的文件,打开 spring-framework-idea\gradle\wrapper\gradle-wrapper.properties 文件夹

  发现里面有 distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip     //  gradle 版本

1.2 下载 gradle 版本

   gradle地址:  https://gradle.org/releases/    

   版本最好一致,版本不一致,有的成功了,反正我是失败了


第二步:编译方式选择

   Spring 提供三种编译代码的方式,gradle方式,IDEA方式,eclipse方式

   在下载的源码中有三个文件:分别教你如何编译,但是我都失败了

Spring5.1源码编译 (Spring源码学习 一 )_第1张图片

  2.1 gradle 添加环境变量,path里面添加%%/bin,gradle -v 查看版本号,gradlew build 就可以了,反正我是不可以,还蓝屏

  2.2 eclipse不想折腾了,用的也不多。


第三步:IDEA方式

 3.1 idea导入工程选择 gradle,导入下载的代码

  Spring5.1源码编译 (Spring源码学习 一 )_第2张图片

 3.2 修改 gradle

 Spring5.1源码编译 (Spring源码学习 一 )_第3张图片

3.3 更改镜像源(可选) 推荐第一次不要改,如果不能的话再修改

 源码下面有个 build.gradle 文件夹。

 

buildscript { 
    repositories { 
        maven { url 'https://plugins.gradle.org/m2/' }
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } 
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'} 
}

plugins{
  原来的配置。。。。。。
}

allprojects { 
        repositories { 
            maven { url 'https://plugins.gradle.org/m2/' } 
            maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' } 
            maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }  
            maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'} 
        } 
}

  位置不能错

工程会进行自动编译了,时间可能会长,可能会短。


第四步: 编译源码

Spring5.1源码编译 (Spring源码学习 一 )_第4张图片

4.1 点击IDEA右上方的gradle,过程已经build好,然后点击 spring-core,按下图一次点击,编译 compileTestJava

      core 是为了添加两个jar包,(Spring源码防止包冲突,所以剔除了)。  

Spring5.1源码编译 (Spring源码学习 一 )_第5张图片

4.2 spring-oxm 也是一样

4.3 spring-aspects 右击忽略,我卡这边好久,因为spring的AOP用的aspectCJ这个包,不忽略无法编译成功.

4.4 最后编译全部,按照上面两个图。

第五步:测试

 新建module,选择maven,你也可以选择 gradle。我maven用的熟悉,(gradle写Android,几年不写了,忘了)

  Spring5.1源码编译 (Spring源码学习 一 )_第6张图片

工程都会建吧。小白不用学源码,大神不屑看我,就我这种半桶水的才需要看源码。

更改依赖,不然maven里面还是maven仓库里面(file read only),不是源码.

 5.1 点开

Spring5.1源码编译 (Spring源码学习 一 )_第7张图片

5.2 选择源码  classes  sources   把红色的减去(一般是你的maven仓库地址),加上你需要的。Spring5.1源码编译 (Spring源码学习 一 )_第8张图片

   5.3 好了 断点进去,可以编辑,如果需要成功,还是 gradle-> 指定包 -> jar 编译的

Spring5.1源码编译 (Spring源码学习 一 )_第9张图片


不保证,你们都可以成功,我看了很多视频很多博客折腾了很久,gradle 看脸,

需要编译好的源码,可以联系我,但是不建议,因为很多依赖还是本机装的。

第六步:最重要的步骤:

当你修改完源码之后,再断点调试的时候,位置变了,断点的指向乱七八糟的,这时候,build spring 那一步,很快的,

你可能感兴趣的:(Spring源码)