欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MacOS 使用IDEA阅读源码并调试

程序员文章站 2022-03-27 08:46:39
1.资源准备jdk版本: 1.8.0_181idea版本: 2019.1gradle版本: 6.7.12.git clone 配置这里要先配置一下域名映射来解决下载速度慢的问题:原因:git clone特别慢是因为github.global.ssl.fastly.net域名被限制了。解决:只要找到这个域名对应的ip地址(IP一直在变获取最新的),然后在hosts文件中加上ip–>域名的映射,刷新DNS缓存便可注意:域名要填对,区分大小写,我看有的文章给的是github.global.s...

1.资源准备

jdk版本: 1.8.0_181
idea版本: 2019.1
gradle版本: 6.7.1

2.git clone 配置

这里要先配置一下域名映射来解决下载速度慢的问题:
原因:git clone特别慢是因为github.global.ssl.fastly.net域名被限制了。
解决:只要找到这个域名对应的ip地址(IP一直在变获取最新的),然后在hosts文件中加上ip–>域名的映射,刷新DNS缓存便可

注意:域名要填对,区分大小写,我看有的文章给的是github.global.ssl.fastly.Net,和github.global.ssl.fastly.net的IP是不同的,前者我试过没有效果。

  • 1. 打开终端分别输入一下命令:
151.101.76.249 github.global.ssl.fastly.net 
192.30.253.112 github.com
  • 如图:
    MacOS 使用IDEA阅读源码并调试
  • 2. 复制这两个IP,打开/etc/hosts文件将下列配置添加带hosts文件最后,保存:

Command + shift + G 组合键
MacOS 使用IDEA阅读源码并调试

注意:hosts文件不能修改,需要先copy一份,修改之后然后再将原来的替换掉
MacOS 使用IDEA阅读源码并调试

  • 3. 刷新DNS缓存:
sudo dscacheutil -flushcache

配置后速度到达1M多,跟网速也有关系,也不会下到一半报错。
MacOS 使用IDEA阅读源码并调试

3.源码下载

打开终端输入:

sudo git clone https://github.com/spring-projects/spring-framework

等待下载完解压即可
MacOS 使用IDEA阅读源码并调试

4. 下载Gradle

  • 特别说明:因为spring源码和gradle有版本一致性的问题,所以要下载和spring源码相匹配的版本。

1.我们打开下载好的源码文件夹
MacOS 使用IDEA阅读源码并调试
2. 打开查看spring源码对应的gradle的版本MacOS 使用IDEA阅读源码并调试

  • 这里可以之前通过文件中提供的路径下载
    链接: 下载
  • 也可以通过官网下载,我这里是从官网下载的
    链接: Gradle下载

3.进入官网下载仅二进制即可
MacOS 使用IDEA阅读源码并调试
4. 配置环境变量

打开终端输入:

vim .bash_profile

MacOS 使用IDEA阅读源码并调试

进入到解压完的Gradle文件,指定bin文件夹,复制路径,配置环境变量
MacOS 使用IDEA阅读源码并调试
输入 i 编辑 、esc退出编辑 、 :wq 保存退出
MacOS 使用IDEA阅读源码并调试
激活配置:
MacOS 使用IDEA阅读源码并调试
查看版本
MacOS 使用IDEA阅读源码并调试

5. 源码预编译

1.进入spring源码根目录下执行(授权):

sudo chown -R $USER /projectdirectory(这里就写你项目的目录)

2终端输入:

 ./gradlew :spring-oxm:compileTestJava

MacOS 使用IDEA阅读源码并调试
等待即可
MacOS 使用IDEA阅读源码并调试
MacOS 使用IDEA阅读源码并调试

6.开始导入

可以看下: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

1.File -> New -> Project from Existing Sources -> 找到选择spring-framework源码
2.配置项目用本地的gradle,不用idea自带的
MacOS 使用IDEA阅读源码并调试
3.这个时候idea就开始自动build了,等待即可
MacOS 使用IDEA阅读源码并调试
4.build结束
MacOS 使用IDEA阅读源码并调试

5.我这里spring-aspects的模块已经排除
大家可右击spring-aspects模块 -> Load/Unload Modules->Unload 即可

MacOS 使用IDEA阅读源码并调试
6.创建test Moudles
MacOS 使用IDEA阅读源码并调试
MacOS 使用IDEA阅读源码并调试
MacOS 使用IDEA阅读源码并调试
拷贝spring-test的gradle配置到sping-debug中进行覆盖,并修改描述为Spring Debug
MacOS 使用IDEA阅读源码并调试
在spring-debug中创建测试类

MacOS 使用IDEA阅读源码并调试

package com.dongcl.bean.test;

/**
 * 类描述:
 * @className MyTestBean
 * company 赛拓信息技术有限公司
 * @author DongCL
 * @date 2020-12-31 09:35
 */
public class MyTestBean {

	private String testStr = "testStr";

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

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

创建bean配置文件
MacOS 使用IDEA阅读源码并调试

创建测试类

选中 -> GoTo -> Test
MacOS 使用IDEA阅读源码并调试

OK
MacOS 使用IDEA阅读源码并调试
在测试类中写入测试信息:
MacOS 使用IDEA阅读源码并调试

package com.dongcl.bean.test

import org.junit.jupiter.api.Test
import org.springframework.beans.factory.BeanFactory
import org.springframework.beans.factory.xml.XmlBeanFactory
import org.springframework.core.io.ClassPathResource

class MyTestBeanTest extends GroovyTestCase {

	@Test
	void testSimpleLoad() {
		BeanFactory bf = new XmlBeanFactory(new ClassPathResource("beanFactoryTest.xml"));
		MyTestBean bean = (MyTestBean) bf.getBean("myTestBean");
		assertThat(bean.getTestStr()).isEqualTo("testStr");
	}

}

Debug模式 运行
MacOS 使用IDEA阅读源码并调试

本文地址:https://blog.csdn.net/weixin_43650943/article/details/112003259

相关标签: java git spring