01-Netty源码编译

文章目录

  • 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模块中给出的许多示例,

01-Netty源码编译_第1张图片

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

四、参考

  • 源码编译参考

你可能感兴趣的:(Netty)