ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

[Clone,源码,IDEA,Error,Gradle]Spring源码分析——调试环境搭建(可能是最省事的构建方法)

2021-12-09 13:59:49  阅读:269  来源: 互联网

标签:java Spring Clone kt 源码 kotlin org sun jetbrains


  1. 依赖工具ideagitjdk 1.8 +Gradle2. 获取源码

  从github

  github/spring-projects/spring-framework 上 Fork 出属于自己的仓库。如果懒得这么做也可以直接Clone or download下载源码包。

  3.使用IDEA编译源码

  首先打开IDEA,点击File —> Open 选择刚才源码的下载路径进行导入

  

Spring源码分析——调试环境搭建(可能是最省事的构建方法)

  

Spring源码分析——调试环境搭建(可能是最省事的构建方法)

  点击“ok”按钮会弹出以下配置框,主要是配置JDK位置,和Global位置(如果没有下载idea会自动帮你装配Global)

  

Spring源码分析——调试环境搭建(可能是最省事的构建方法)

  点击确认后,就会打开Spring 源码,idea下面会显示正在导入包中(导包过程很慢请耐心等待)

  

Spring源码分析——调试环境搭建(可能是最省事的构建方法)

  所有关联包导入完毕后需要Build下项目,导入QQ号交易项目完成(如图操作)

  

Spring源码分析——调试环境搭建(可能是最省事的构建方法)

  4.运行调试

  经过上面的步骤之后基本上就可以直接运行 spring 的 Testcase 了 可以先选择调试 “

  XmlBeanDefinitionReaderTests” 类(作用: 解析 XML 配置文件成对应的 BeanDefinition 们的流程)。有可能会遇到如下的错

  Error:Kotlin: [Internal Error] java.lang.AbstractMethodError: org.jetbrains.kotlin.scriptingpiler.plugin.ScriptingCompilerConfigurationComponentRegistrar.registerProjectComponents(Lcom/intellij/mock/MockProject;Lorg/jetbrains/kotlin/config/CompilerConfiguration;)V

  at org.jetbrains.kotlin.cli.jvmpiler.KotlinCoreEnvironment.(KotlinCoreEnvironment.kt:173)

  at org.jetbrains.kotlin.cli.jvmpiler.KotlinCoreEnvironment.(KotlinCoreEnvironment.kt:114)

  at org.jetbrains.kotlin.cli.jvmpiler.KotlinCoreEnvironment$Companion.createForProduction(KotlinCoreEnvironment.kt:401)

  at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.createCoreEnvironment(K2JVMCompiler.kt:282)

  at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.createEnvironmentWithScriptingSupport(K2JVMCompiler.kt:272)

  at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:151)

  at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:61)

  at org.jetbrains.kotlin.climon.CLICompiler.execImpl(CLICompiler.java:107)

  at org.jetbrains.kotlin.climon.CLICompiler.execImpl(CLICompiler.java:51)

  at org.jetbrains.kotlin.climon.CLITool.exec(CLITool.kt:92)

  at org.jetbrains.kotlin.daemonpileServiceImpl$compile$$inlined$ifAlive$lambda$1.invoke(CompileServiceImpl.kt:380)

  at org.jetbrains.kotlin.daemonpileServiceImpl$compile$$inlined$ifAlive$lambda$1.invoke(CompileServiceImpl.kt:96)

  at org.jetbrains.kotlin.daemonpileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:892)

  at org.jetbrains.kotlin.daemonpileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:96)

  at org.jetbrains.kotlin.daemonmon.DummyProfiler.withMeasure(PerfUtils.kt:137)

  at org.jetbrains.kotlin.daemonpileServiceImpl.checkedCompile(CompileServiceImpl.kt:919)

  at org.jetbrains.kotlin.daemonpileServiceImpl.doCompile(CompileServiceImpl.kt:891)

  at org.jetbrains.kotlin.daemonpileServiceImplpile(CompileServiceImpl.kt:378)

  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

  at java.lang.reflect.Method.invoke(Method.java:498)

  at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346)

  at sun.rmi.transport.Transport$1(Transport.java:200)

  at sun.rmi.transport.Transport$1(Transport.java:197)

  at java.security.AccessController.doPrivileged(Native Method)

  at sun.rmi.transport.Transport.serviceCall(Transport.java:196)

  at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)

  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler0(TCPTransport.java:826)

  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)

  at java.security.AccessController.doPrivileged(Native Method)

  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler(TCPTransport.java:682)

  at java.util.concurrent.ThreadPoolExecutorWorker(ThreadPoolExecutor.java:1142)

  at java.util.concurrent.ThreadPoolExecutor$Worker(ThreadPoolExecutor.java:617)

  at java.lang.Thread(Thread.java:745)

  这个主要是Kotlin插件的版本问题,解决方案是更新新版本的Kotlin插件。贴个链接:IntelliJ IDEA手动更新Kotlin.

  5.可能遇到的错

  遇到

  InstrumentationSavingAgent 不存在的错误 需要将 spring-context.gradle 修改如下:

  

Spring源码分析——调试环境搭建(可能是最省事的构建方法)

  遇到 Objenesis找不到,则需要操作上面的build项目即可(最新版本,bulid后此包就会下载下来。如果是老版本有可能需要手动添加)

  

Spring源码分析——调试环境搭建(可能是最省事的构建方法)

  这些观点只代表自己观点,本人写的东西只是自己在工作或者生活中遇到的问题和大家分享一下,方便自己和大家的查阅,目前博客主要更新两大类。在用微服务中遇到的问题,技术的整理和数据库优化方面。以后还会增加其他板块。如有错误的地方请联系博主会及时更正。

标签:java,Spring,Clone,kt,源码,kotlin,org,sun,jetbrains
来源: https://blog.csdn.net/linjingyg/article/details/121818783

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有