netty源码编译跑通简记
# 写在文章开头
最近因为需要而再次阅读netty源码,发现有了一些不一样的见解,于是便打算重构一下过去的文章分享,而本文将会简单梳理一下笔者对于netty源码编译到运行的全过程,希望对你有帮助。

Hi,我是 sharkChili ,是个不断在硬核技术上作死的 java coder ,是 CSDN的博客专家 ,也是开源项目 Java Guide 的维护者之一,熟悉 Java 也会一点 Go ,偶尔也会在 C源码 边缘徘徊。写过很多有意思的技术博客,也还在研究并输出技术的路上,希望我的文章对你有帮助,非常欢迎你关注我的公众号: 写代码的SharkChili 。
因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注 “加群” 即可和笔者和笔者的朋友们进行深入交流。

# 详解netty源码编译和启动步骤
# 克隆或下载源码
我们首先需要到GitHub获取项目地址,因为笔者习惯在源码上做个人注释,所以也需要进行个人的代码版本管理,所以直接选择下载的方式获取源码,而版本选择的则是 netty-4.1.63.Final。

下载完成后就像打开常规maven项目一样,等待IDEA完成netty项目的索引建立、编译、初始化工作,在此期间我们需要检查如下几个配置:
- jdk选择jdk8。
- encoding设置为utf-8。
- maven版本尽量使用3.5.x及以下的版本。
# 修复程序包io.netty.util.collection不存在
完成后我们尝试启动example模块下的HttpCorsServer这个示例代码可能会出现程序包io.netty.util.collection不存在,原因是这些代码需要使用common模块下的codegen.groovy脚本进行生成:

从common的pom文件也可看出该脚本只要我们运行了编译指令即可执行:

对此我们需要编译一下common包,使其脚本执行为我们生成这些代码即可解决问题:

# 修复invalid newline character (expected: CRLF) [Newline]
我们还可能遇到在程序编译运行时发现当前操作系统上的换行符导致checkStyle编译不通过,而解决方式也很简单,打开根目录下的pom文件,找到maven-checkstyle-plugin这个插件,在其configuration标签中添加一行:
<skip>true</skip>
配置操作如下图所示:

# 启动测试
如果运行到下面这一步则说明我们的源码环境基本配置搭建完成了:

# 小结
以上便是笔者对于netty-4.1.63.Final源码编译、配置、启动的全流程简记,希望对你有帮助。
我是 sharkchili ,CSDN Java 领域博客专家,开源项目—JavaGuide contributor,我想写一些有意思的东西,希望对你有帮助,如果你想实时收到我写的硬核的文章也欢迎你关注我的公众号: 写代码的SharkChili 。 因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注 “加群” 即可和笔者和笔者的朋友们进行深入交流。

# 参考
编译netty出现\common\src\main\java\io\netty\util\AbstractConstant.java:0: invalid newline character (exp: :https://blog.csdn.net/qq_37616173/article/details/101288986 (opens new window)
【Netty】Netty源码编译 https://www.cnblogs.com/h--d/p/14891785.html (opens new window)