spring boot 2.x源码正确编译姿势

最近一直在跟着大佬的源码解析在看spring boot 源码,在啃的时候,光看倒是没啥感觉,所以就跟着一起动手执行,观看不做傻把式,竟然第一次搭建spring boot 源码的环境就错误百出,执行千里,始于足下,还是老老实实找问题,解决。下面是碰到的一些坑和解决办法。经供参考。

  • 环境准备
    1、安装maven 3.5或者以上版本。
    2、安装JDK 8或者以上,如果是最下载的是最新的版本2.3.0 ,建议安装jdk 11,因为我后期碰到一些问题,升级了jdk 就ok了.。
    3、源码fork到自己的库 link
    这一步fork 方便自己存档,修改自便,当然如果你觉得不需要,可以忽略。
    在这里插入图片描述
    4、git clone 到本地导入IDEA(笔者ide是idea,其他ide 同样,不浪费时间说这个)

    git clone https://github.com/spring-projects/spring-boot.git

    由于Spring Boot的发布版本代码都在tag上,所以需要使用git tag命令查看所有的tag]

    git tag

    然后切换到名为v2.0.0.RELEASE的tag上:

    git checkout -b v2.0.0.RELEASE v2.0.0.RELEASE

    这样,代码就被保存到本地分支v2.0.0.RELEASE上了,可以随意操作

    5、开始进行源码编译工作

    源码视图

在这里插入图片描述

  • 修改最外层pom.xml文件

<disable.checks>true</disable.checks>

在这里插入图片描述

  • 接着切换到spring-boot根目录下,开始进行编译,变过执行过程又两种方式,我这里使用的Maven版本是apache-maven-3.5.4

    • 方式一 : 使用mvn clean install 编译项目

      mvn -Dmaven.test.skip=true clean install
      

    -Dmaven.test.skip=true 在打包过程中会忽略testcase,不然编译过程漫长,而且可能会发生一些异常,初次编译的目的削减掉这一步,如果正常编译通过,后面可以对那测试案例做测试。

    • 方式二 : 使用 mvnwrapper 编译项目
    • 1

        mvn -N io.takari:maven:wrapper		
      
    • 2 (window)

       mvnw clean install -DskipTests -Pfast 
      

我的编译结果
在这里插入图片描述我再执行编译的过程中也出现了几个低级错误,其中也碰到了
在这里插入图片描述
然后参一些博客的解决办法
在这里插入图片描述
删除掉后重新来一遍

mvn -Dmaven.test.failure.ignore=true -Dmaven.test.skip=true clean install

也就成功了,后来急于测试源码,也就没去看具体的原因。主要是这个gradle plugin对我要做的学习不重要,所以没关心。哈哈

6、进行测试

  • 选取项目里的一个单元测试运行一下,走起,发现运行成功了。

  • 自己创建子模块项目引入编译的源码进行调试,

    在spring-boot/spring-boot-project目录下创建一个Spring Boot项目测试一下自己编译的源码是否可以正常运行
    在这里插入图片描述
    子模块项目就创建一个简单的spring boot demo,按照自己平时创建springboot demo案例就行。
    做个简单的请求案例,我的如下:

在这里插入图片描述
运行
在这里插入图片描述
测试结果在这里插入图片描述正常结束。

  • 总结

    再调试过程中出现了好几次失败,一些奇怪的问题也出现了,就是已经编译好了,运行案例的时候老是提示找不到类,或者不存在。我自己去找到对应的编译的文件都存在,因为项目比较巨大,没有找到根本原因,后来把jdk 升级到11 后,重新编译了一遍。就ok了。反正最后也成功了。:)
    如果有疑问的,给我留言。我尽自己最大努力回复大家。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值