Netty编译不了
netty源码编译教程
今天想编译netty源码,进行源码学习,却遇到无法编译的问题。这里记录一下正确的操作
环境
java环境+Maven环境+Jdk8
clone
https://github.com/netty/netty
学习源码首先三连
fork后,克隆到本地
为什么要fork?因为fork之后自己修改的源码(如果要上传,方便直接上传到自己的github)
git clone https://github.com/chengcodex/netty.git
编译准备
mvn clean compile '-Dmaven.test.skip=true'
尝试编译之后可以发现,编译成功了
尝试运行example模块的example,又发现缺失xxxx.如果一直解决下去,恭喜你一天没了
解决方案
修改netty版本,回退到非快照版本
选择你一个喜欢的版本
这里我写的时候犯了一个错误,没从自己的版本库看版本,取到netty官方看了 o(╥﹏╥)o
git switch netty-4.1.49.Final
然后就可以正常编译,调试代码了
重新编译
mvn clean compile '-Dmaven.test.skip=true'
Junit的问题
https://github.com/netty/netty/issues/9954
可以发现是idea的bug,或者说是idea严格不给过,说这样子是有歧义。mvn编译没有问题
我们将这些代码一一注释即可
最后即可编译运行
https://github.com/chengcodex/netty/tree/4.1.49.Final
如果你嫌麻烦,可以git clone我的项目,然后在git checkout
git clone https://github.com/chengcodex/netty.git
git checkout 4.1.49.Final
git remote remove # 删掉远程地址
git remote add # 添加自己的远程地址