Netty源码阅读计划——阅读环境搭建

Posted Java进阶攻略

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Netty源码阅读计划——阅读环境搭建相关的知识,希望对你有一定的参考价值。

什么是阅读环境呢?源码直接down下来不就可以阅读了吗?

阅读环境其实是调试环境。阅读源码只看不运行是不可能达到技术进阶的目的,把源码导入IDE,借助工具分析类之间的继承关系,运行官方提供的测试用例,边看边动手才是源码阅读的正确姿势。

1. 创建Netty仓库

源码地址

Netty的源码托管在github上:https://github.com/netty/netty。

【fork】仓库

点击【fork】按钮,在自己的github创建一个本地仓库。

这个仓库就是要阅读的源码,通过创建本地仓库,可以把自己在阅读源码过程中写下的注释和代码提交到github做持久化保存,永不丢失。

【clone】源码

在自己电脑本地使用git克隆源码。在克隆源码之前,注意切换分支到自己准备阅读的版本。这系列文章基于 4.0.x分支, 4.1.34.Final-SNAPSHOT版本。

2. 导入IDEA

开发工具这里选择了IDEA。

点击【File】->【New】->【Project from Existing Source】,选择源码所在目录。

选择【Maven】方式导入,点击【OK】,进入下一步。

勾选【Search for projects recursively】和【Import Maven projects automatically】,点击【Next】,进行下一步。

Netty源码阅读计划——阅读环境搭建

这里都是IDEA自动帮助勾选的,【jdk 8】和【mac】是自己电脑的环境,【downloadSources】是自己配置在Maven配置文件的东西,IDEA读取到的,点击【Next】,开始导入。

Netty源码阅读计划——阅读环境搭建

3. 验证

最后的源码阅读环境如下:

点击任一Netty官方测试类,运行/debug @Test方法,查看是否能够正常运行。

4. 讨论

错误

codec-redis模块中,类 FixedRedisMessagePool报错:

出错的类如下:

 
   
   
 
  1. import io.netty.util.collection.LongObjectHashMap;

  2. import io.netty.util.collection.LongObjectMap;

解决办法是跳转到 common模块中,使用Maven编译相应的类。

cd common

  1. mvn clean compile

出错的原因参阅 common模块的 src/java/templates/io/netty/util/collection目录下的 .template文件。

example模块

example模块中,提供了很多的官方使用用例。影响源码阅读的一个很重要的因素就是关于框架的使用熟练程度,因为不了解框架特性,那么一些源码在阅读过程中就会不解其意。

众多的官方用例中,以 echo最简单。

启动 EchoServer服务器,启动 EchoClient客户端。可以查看到日志输入。

5. 写在最后

源码阅读贵在持之以恒,多动手调试,多动手记录。


以上是关于Netty源码阅读计划——阅读环境搭建的主要内容,如果未能解决你的问题,请参考以下文章

Idea下Kafka源码阅读编译环境搭建

Spring源码阅读 源码环境搭建

Spring源码阅读:使用IDEA搭建Spring5.0.x源码阅读环境

Spring源码阅读环境搭建

搭建Tomcat源码阅读环境,无bug运行。答应我,和我一起学习Tomcat,不要放弃!

ZooKeeper源码阅读心得分享+源码基本结构+源码环境搭建