首先从GitHub下载Netty源码
https://github.com/netty/netty
虽然下载了源码, 一般情况我们会针对特定的tag版本进行学习研究.
使用git tag命令查看所有的tag
以上截取了部分, 这里我们选择netty-4.1.60.Final
执行以下命令
// 根据netty-4.1.60.Final这个tag版本创建一个本地分支netty-tmp
git branch netty-tmp netty-4.1.60.Final
// 切换到netty-tmp分支
git checkout netty-tmp
说一下配置
maven配置
JDK配置
将父pom.xml中的1.6和1.7都改成1.8
把父pom.xml中的所有test模块都注释掉
执行Common下的install命令
执行rebuild
会出现一些断言错误, 直接注释掉即可
把父pom.xml文件中关键字是com.github.siom79.japicmp的plugin删除.
全局搜索xml文件中的maven-checkstyle-plugin关键字, 把与checkstyle相关的plugin全部删除. (大约分布在6个地方)
由于我们指定的版本是4.1.60.Final, 为了不引起冲突, 我们把这个版本的名称改成4.1.60.3.Final(名称任意), 需要全局搜索xml文件, 然后全部替换掉就可以.(大约85处)
在NioEventLoopGroup文件中添加内容
最后执行
【验证】
在另一个工程里面依赖上面的4.1.60.3.Final版本
测试代码
public static void main( String[] args ) {
NioEventLoopGroup boss = new NioEventLoopGroup(1);
}
输出
你可以通过这种方式, 修改源码之后, 重新打包, 然后其他项目依赖这个包, 用于排查一些问题, 或者学习使用.
公众号