Netty源码编译不了,如何正确编译

Netty编译不了

netty源码编译教程

今天想编译netty源码,进行源码学习,却遇到无法编译的问题。这里记录一下正确的操作

环境

java环境+Maven环境+Jdk8

clone

https://github.com/netty/netty

学习源码首先三连

Netty源码编译不了,如何正确编译_第1张图片

fork后,克隆到本地

为什么要fork?因为fork之后自己修改的源码(如果要上传,方便直接上传到自己的github)

Netty源码编译不了,如何正确编译_第2张图片

git clone https://github.com/chengcodex/netty.git

编译准备

Netty源码编译不了,如何正确编译_第3张图片

Netty源码编译不了,如何正确编译_第4张图片

mvn clean compile '-Dmaven.test.skip=true'

尝试编译之后可以发现,编译成功了

Netty源码编译不了,如何正确编译_第5张图片

尝试运行example模块的example,又发现缺失xxxx.如果一直解决下去,恭喜你一天没了

Netty源码编译不了,如何正确编译_第6张图片

解决方案

修改netty版本,回退到非快照版本

Netty源码编译不了,如何正确编译_第7张图片

选择你一个喜欢的版本

Netty源码编译不了,如何正确编译_第8张图片

这里我写的时候犯了一个错误,没从自己的版本库看版本,取到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编译没有问题

Netty源码编译不了,如何正确编译_第9张图片

我们将这些代码一一注释即可

最后即可编译运行

https://github.com/chengcodex/netty/tree/4.1.49.Final

Netty源码编译不了,如何正确编译_第10张图片

如果你嫌麻烦,可以git clone我的项目,然后在git checkout

git clone https://github.com/chengcodex/netty.git
git checkout 4.1.49.Final
git remote remove # 删掉远程地址
git remote add  # 添加自己的远程地址

你可能感兴趣的:(源码编译,netty,java,java,netty,github)