栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring源码阅读调试环境搭建(MacOS)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring源码阅读调试环境搭建(MacOS)

1 下载Spring源码
git clone https://github.com/spring-projects/spring-framework
2 下载Gradle

下载地址:https://gradle.org/install/#helpful-information

因为spring源码和gradle有版本一致性的问题,下载安装完gradle之后需要在spring源码根目录执行响应的gradle版本设置:

./gradlew wrapper --gradle-version=7.4.2 --distribution-type=bin

3 spring源码编译

进入spring源码根目录下执行:

./gradlew :spring-oxm:compileTestJava
4 导入spring源码到IDEA

github提供的已知问题.

修改spring源码根目录中的gradle.properties文件:

org.gradle.daemon=true

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

org.gradle.parallel=true

org.gradle.configureondemand=true

File -> New -> Project from Existing Sources -> 找到选择spring-framework源码并且导入:

配置项目用本地的gradle,不用idea自带的,并且设置jdk为11:

这个时候idea就会开始自动build了,等待即可

5 排除模块

可右击某个模块 -> Load/Unload Modules->Unload 即可:

6 创建调试测试模块

选择File->New->Module,然后选择Gradle,选择jdk为1.8,模块名为spring-debug,创建完成之后拷贝spring-test的gradle配置到sping-debug中进行覆盖,并修改描述为Spring Debug

编写测试类:

package com.redisread.bean.test;

public class MyTestBean {
	private String testStr = "testStr";

	public String getTestStr() {
		return this.testStr;
	}

	public void setTestStr(String testStr) {
		this.testStr = testStr;
	}
}

创建bean配置文件:




	


新建单测:

package com.redisread.bean.test;

import junit.framework.TestCase;
import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;

public class MyTestBeanTests extends TestCase {

	@Test
	public void testSimple() {
		BeanFactory bf = new XmlBeanFactory(new ClassPathResource("beanFactoryTest.xml"));
		MyTestBean bean = (MyTestBean) bf.getBean("myTestBean");
		System.out.println(bean.getTestStr());
		assertEquals("testStr", bean.getTestStr());
	}
}

就可以打断点调试了!

常见错误参考
  • 使用 IntelliJ IDEA 构建 Spring Framework 5.3.21 源码问题解决 - 本宫在,尔等都是妃 - 博客园

    编译过程中出现与 ‘-Werror’ 有关的错误及其解决方案:

    原因:-Werror 的作用是将全部的 warning 当成 error。 解决方案:全局搜索 -Werror 关键字,并注释该选项。

  • 摇篮 | 安装

    如果您现有的基于 Gradle 的构建使用Gradle Wrapper,您可以通过运行任务轻松升级wrapper,指定所需的 Gradle 版本:

    $ ./gradlew wrapper --gradle-version=7.4.2 --distribution-type=bin
    
  • MacOS 使用IDEA阅读源码并调试 - CodeAntenna

  • https://blog.csdn.net/qq_40367066/article/details/114935563

  • idea编译报错处理:No tests found for given includes_卯丁戌的博客-CSDN博客

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1002936.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号