01-Netty源码编译

Netty源码编译

一、编译步骤

第一步:下载源码

  • 地址:https://github.com/netty/netty
  • 下载: git clone https://github.com/netty/netty.git
  • 切换分支:下载之后,切换到4.1分支: git checkout 4.1
git clone https://github.com/netty/netty.git
git checkout 4.1
  • 注意:也可以先fork到自己的仓库,再下载,切换分支;

第二步:修改

  • 修改源码的主pom文件编译版本;(将1.6修改为1.8)
//修改前(将下面的1.6修改为1.8):
<maven.compiler.source>1.6</maven.compiler.source>
<maven.compiler.target>1.6</maven.compiler.target>

//修改后:
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>

第三步:编译

mvn clean install -DskipTests=true  -Dcheckstyle.skip=true

二、编译报错

  • 在编译期间很可能会报错,我遇到的是报assertEquals方法的错误,是源码里面的测试用例中使用的断言方法,但是很奇怪跳过了测试还会报,我就不管那么多,将报错的断言注释掉,大概注释了好多个文件之后,再执行第三步的编译就ok了,类似于如下:
//PendingWriteQueueTest
//        assertEquals(1L, channel.readOutbound());
//        assertEquals(2L, channel.readOutbound());

三、使用

  • 然后就可以修改源码,添加注释,然后在自己的项目中依赖自己编译的包,调试了;
<dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-all</artifactId>
        <!--<version>4.1.28.Final</version>-->
        <version>4.1.26.Final-SNAPSHOT</version>
</dependency>

注意:原本我想修改一下版本号再编译,但是因为版本号是在主pom中定义的,但是主pom是Netty源码中每个模块的父模块,因此被引用的地方很多,不好修改,修改后就会编译报错;

//如下所示:主pom中定义了版本号,在子模块buffer中依赖了这个版本号,因此不要随意修改,否则编译失败
//如果要修改的话,每一个子模块依赖的版本号都要修改
//主pom
<groupId>io.netty</groupId>
  <artifactId>netty-parent</artifactId>
  <packaging>pom</packaging>
  <version>4.1.26.Final-SNAPSHOT</version>
  
  
//buffer模块
<parent>
    <groupId>io.netty</groupId>
    <artifactId>netty-parent</artifactId>
    <version>4.1.26.Final-SNAPSHOT</version>
  </parent>
  • 另外,可以参考源码中的example模块中给出的许多示例,

在这里插入图片描述

  • 到此,自己就可以在源码中添加自己的注释,日志来本地打包并依赖调试了。

四、参考

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值