zoukankan      html  css  js  c++  java
  • idea中clone Spring源码

    前言

    以前学习spring的时候都是maven添加spring的依赖.然后自己写几个junitTest.debug到源码里去看看..最近在刚好在看spring相关书籍.想去修改源码做做实验.所以就尝试了下把github上的spring源码导入到idea中.

    不管是市面上的书籍还是很多博客.我觉得在这个方面写的都不太好..其实没那么复杂..这里简单介绍下我的操作方法.

    clone

    首先肯定是从github上去clone源码. https://github.com/spring-projects/spring-framework.

    最好是用命令行或者是其他工具去做clone,而不是直接使用idea的clone..因为直接使用idea的clone后面会需要多操作几步,略有麻烦..我这里是使用了idea的clone.

    解决编译错误

    打开项目以后肯定会遇到各种报错,编译问题..比如spring-core这个模块下面很多类都会要用到Objenesis和cglib相关的类.发现都没有.

    这个时候不管是spring相关书籍,比如《spring源码深度解析》还是网上很多博客.都说你要去把这几个jar导入,然后修改gradle脚本之类的.让idea能找到这些类...其实这是不必要的.

    直接去查看项目根目录下import-into-idea.md.

    里面讲到clone项目以后首先要做的是

    ./gradlew cleanIdea :spring-oxm:compileTestJava

    做完这不操作会自动运行gradle脚本..spring-core项目下的gradle的有2个task就是repack cglib和objenesis.

    命令运行完以后你会发现spring-core下会多出几个jar

    这几个jar就是你编译缺少的那些class.

    所以根本不用去网上找jar再导入.gradle脚本里都帮你写好了..

    这个时候如果你的项目直接是命令行clone下来的这个时候导入idea就没问题了...

    idea重新导入

    如果之前不是命令行clone下来的.而是使用idea直接去clone的.那这个时候尽管已经有了这些jar.但是还是提示你找不到这些类.

    这个时候只要重新导入一下项目就好了.(或者把那些jar添加到classpath里也可以.但是麻烦.不如重新导入项目简单)

    先去在recent projects里把spring的项目删掉.再重新导入

    先gradle项目就OK了.这个时候就不会有编译错误了...

    其他操作

    最后就是按md里说的那样,把spring-aspect排除掉...

    如果还有编译错误的话可以在compiler里剔除那个模块

    然后就可以愉快的运行其他模块的unit tests了..

  • 相关阅读:
    echarts二维坐标这样写出立体柱状图
    echarts中使图表循环显示tooltip-封装tooltip的方法轮询显示图表数据
    webpack--运行npm run dev自动打开浏览器以及热加载
    exports、module.exports和export、export default到底是咋回事,区别在哪里
    H5页面判断客户端是iOS或是Android并跳转对应链接唤起APP
    关于页面锚点跳转以及万能锚点跳转插件
    echarts Map 省份文字居中,即对应地图中心位置
    Moment.js 常见用法,常见API
    Tomcat 不加载图片验证码
    Cglib 动态代理
  • 原文地址:https://www.cnblogs.com/abcwt112/p/12242405.html
Copyright © 2011-2022 走看看