IDEA jdk-17 源码阅读配置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDEA jdk-17 源码阅读配置相关的知识,希望对你有一定的参考价值。
参考技术A 就不解释上面这个缩写啥意思了。之前在 IDEA 上搭建的是 jdk-1.8 的阅读环境,网搜大多数搭建教程都是靠谱的。心血来潮想切换到最新的 jdk-17,中英文教程全部失效,摸索了一个暂时可行的方案,记录如下。新建简单 java 项目,举例如图:
找到 jdk 安装路径的 src.zip 压缩包,解压到某文件夹下,取出 src/java.base 下的所有文件夹,包括 module-info.java,放到 prj/.../source 文件夹下即可。
同 jdk-1.8 的配置方法:
Spring源码阅读:使用IDEA搭建Spring5.0.x源码阅读环境
https://docs.gradle.com/enterprise/compatibility/#gradle_enterprise_gradle_plugin
说明
Spring源码阅读环境配置如下:
- Spring 5.x版本
- Gradle 4.8.1
- JDK8
- IDEA2020.1
- win10
搭建步骤
1. 下载Spring源码
下载地址:Github链接,选择5.x版本
如果Github下载过慢,可以使用码云加速,镜像地址
另一种办法是通过梯子配置代理,也可以加速下载
2. 配置Gradle
Spring基于gradle构建,需要先安装配置Gradle
Gradle下载地址,选择complete版本,下载后加入环境变量,通过gradle -v验证是否配置成功
3. 构建项目
在进行预编译之前,需要检查以下几个地方:
- gradle.properties: 查看版本是否正确
- jdk版本和gradle版本
在代码目录下执行命令:
gradlew :spring-oxm:compileTestJava
等待编译成功。编译过程可能遇到如下问题:
- An exception occurred applying plugin request [id: \'com.gradle.build-scan\', version: \'1.8\']
解决办法:Gradle版本问题,具体原因参考此链接
Gradle Build Tool versions | Minimum plugin version | Maximum plugin version |
---|---|---|
>= 6.0 | 3.0 | 3.3.1 |
5.0 - 5.6.4 | 2.0.2 | 3.3.1 |
4.1 - 4.10 | 1.8 | 1.16 |
4.0 | 1.7.4 | 1.16 |
2.0 - 3.5 | 1.0 | 1.16 |
< 2.0 | not supported | not supported |
- org.gradle.api.CircularReferenceException: Circular dependency between the following tasks:
:spring-beans:compileGroovy
--- :spring-beans:compileJava
--- :spring-beans:compileKotlin
--- :spring-beans:compileGroovy (*)
解决办法:循环引用问题,注释掉下面三行
4. 导入IDEA
File -> New -> Project from Existing Sources -> 找到 Spring 项目路径 -> 选中 build.gradle,并配置gradle,如下图所示
接下来idea会进行很长时间的build,下载相关jar包,耐心等待即可
可能出现如下问题:
- 缺少jar包:spring-cglib-repack-x.x.x.jar、spring-objenesis-repack-x.x.jar
解决办法:在spring的解压目录下执行下面这两个命令
gradle objenesisRepackJar
gradle cglibRepackJar
调试代码
新建module,编写自己的代码,对spring代码进行走读。
关于module相关知识,可以参考另一篇文章:IDEA中Project和Module的关系
项目右击,New->Module
当然也可以创建基于Maven的module,如下所示:
创建module子项目以后,需要添加module依赖,方便导入相关包。如下所示:
至此,可以写代码了。我们创建一个简单的java bean,并打印。
Person.java:
public class Person
private String name;
public String getName()
return name;
public void setName(String name)
this.name = name;
Beans.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="person" class="org.wds.Person">
<property name="name" value="zhangsan"/>
</bean>
</beans>
Main.java:
public class Main
public static void main(String[] args)
ApplicationContext context =
new ClassPathXmlApplicationContext("Beans.xml");
Person obj = (Person) context.getBean("person");
System.out.println(obj.getName());
运行结果如下所示:
至此,环境搭建成功,可以通过打断点对源代码进行调试和走读。
以上是关于IDEA jdk-17 源码阅读配置的主要内容,如果未能解决你的问题,请参考以下文章
IntelliJ IDEA 配置 Hadoop 源码阅读环境
Spring源码阅读:使用IDEA搭建Spring5.0.x源码阅读环境