前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >本地编译Netty并打包成指定的版本

本地编译Netty并打包成指定的版本

作者头像
书唐瑞
发布2022-06-02 14:18:34
1.1K0
发布2022-06-02 14:18:34
举报
文章被收录于专栏:Netty历险记

首先从GitHub下载Netty源码 https://github.com/netty/netty

虽然下载了源码, 一般情况我们会针对特定的tag版本进行学习研究.

使用git tag命令查看所有的tag

netty-3.10.0.Final

netty-3.10.1.Final

netty-3.10.2.Final

...

netty-4.1.6.Final

netty-4.1.60.Final

netty-4.1.7.Final

netty-4.1.8.Final

netty-4.1.9.Final

netty-5.0.0.Alpha1

netty-5.0.0.Alpha2

这里我们选择netty-4.1.60.Final

执行以下命令

代码语言:javascript
复制
// 根据netty-4.1.60.Final这个tag版本创建一个本地分支netty-tmp
git branch netty-tmp netty-4.1.60.Final
// 切换到netty-tmp分支
git checkout netty-tmp

1

Maven配置

2

JDK配置

JDK1.8

3

修改内容

将父pom.xml中的1.6和1.7都改成1.8

将父pom.xml中的所有test模块都注释掉

4

其他操作

执行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版本

测试代码

代码语言:javascript
复制
public static void main( String[] args ) {

    // 我们就是在这个文件中添加了代码, 现在直接调用构造器 
    NioEventLoopGroup boss = new NioEventLoopGroup(1);
}

输出内容如下

你可以通过这种方式, 修改源码之后, 重新打包, 然后在其他项目依赖这个包, 用于排查一些问题, 或者学习使用.

整体操作下来还是比较麻烦的, 但基本上只需要操作一次, 后面基本也就不会再调整修改.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Netty历险记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档