编译Netty源码遇到的一些问题-缺少io.netty.util.collection包
缺少包和java类
下载好Netty的源码后,导入到IDE,运行自带的example时编译不通过。
如下图,是因为io.netty.util.collection的包没有
点进去看,确实没有这个包
发现猫腻
发现这个common包下有一个templates包,放的应该是模板。还有一个script包,放的应该是脚本。
看一下这个脚本,应该是替换掉下面模板文件名的K字母,替换成Byte、Char等单词,生成如ByteObjectHashMap、CharObjectHashMap。。。的类
如何运行脚本生成java类
知道了这个原理,那怎么运行这个脚本的呢?
我们看他是groovy结尾的,应该是需要groovy的一个插件,pom文件里也确实有这个插件
怎么用这个插件运行脚本呢?
选中这个common项目右键选择Run Maven - compile
运行失败
不好意思,报了一堆错,错误信息缺失一片空白
打开对应的java文件,也是没有任何错误提示的,难搞。。。
解决运行失败
别急,慢慢看。把错误拉到最后看
粘出来错误信息:
E:\idea_work\netty-4.1\common\src\main\resources\META-INF\native-image\io.netty\common\native-image.properties:0: invalid newline character (expected: CRLF) [Newline]
E:\idea_work\netty-4.1\common\src\main\resources\META-INF\native-image\io.netty\common\native-image.properties:1: 文件未以空行结尾。 [NewlineAtEndOfFile]
说这个文件以空行结尾。纳尼。。。
打开这个文件看看,确实如此。那我们把这个空行删了。再试试吧。
很遗憾,还是这个错哈哈哈。。。
最终解决办法
不过,还有解决办法。
百度了一下,可以跳过这个样式检查,解决办法来自于这里
1、在编译的时候加一个参数:-Dcheckstyle.skip=true。
2、
或者是在pom中加<skip>true</sikp>,如
<project>
...
<build>
...
<plugins>
...
<plugin>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
...
</plugins>
...
</build>
...
</project>
再次编译
编译成功
果然好了。在target下生成了对应的文件。
编译Netty源码遇到的一些问题-缺少io.netty.util.collection包的更多相关文章
- Netty 源码 Channel(二)主要类
Netty 源码 Channel(二)主要类 Netty 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) 一.Channel 类图 二. ...
- Netty 源码 Channel(一)概述
Netty 源码 Channel(一)概述 Netty 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) Channel 为 Netty ...
- Netty 源码 NioEventLoop(三)执行流程
Netty 源码 NioEventLoop(三)执行流程 Netty 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) 上文提到在启动 N ...
- Netty 源码(二)NioEventLoop 之 Channel 注册
Netty 源码(二)NioEventLoop 之 Channel 注册 Netty 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) 一 ...
- Netty 源码 NioEventLoop(一)初始化
Netty 源码 NioEventLoop(一)初始化 Netty 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) Netty 基于事件 ...
- idea 编译 netty 源码
git clone netty 源码,运行 example 报错 全量 mvn compile -DskipTests=true 后,依然报错 手动在 netty-buffer 模块中添加对应的依赖 ...
- Netty 源码解析(四): Netty 的 ChannelPipeline
今天是猿灯塔“365篇原创计划”第四篇. 接下来的时间灯塔君持续更新Netty系列一共九篇 Netty 源码解析(一): 开始 Netty 源码解析(二): Netty 的 Channel Netty ...
- 脚踏实地的Netty源码研究笔记——开篇
1. 脚踏实地的Netty源码研究笔记--开篇 1.1. Netty介绍 Netty是一个老牌的高性能网络框架.在众多开源框架中都有它的身影,比如:grpc.dubbo.seata等. 里面有着非常多 ...
- Windows编译Nginx源码
Windows下的Nginx战役,人不作就不会死!就像是拿着麦当劳的优惠券去买肯德基一样,别扭啊 Nginx是一款轻量级的Web 服务器.反向代理服务器.邮件服务器等等集一大串荣誉于一身的大牌人物!他 ...
随机推荐
- 一条数据的HBase之旅,简明HBase入门教程1:开篇
[摘要] 这是HBase入门系列的第1篇文章,主要介绍HBase当前的项目活跃度以及搜索引擎热度信息,以及一些概况信息,内容基于HBase 2.0 beta2版本.本系列文章既适用于HBase新手,也 ...
- IO到NIO的一个转变
本内容来源:Jack视频讲解和自己的一个理解. 1.故事还得从网络模型或者IO开始聊起 2.你有想过传统IO真正存在的问题吗? 3.如果你是设计者,IO可以怎样改进? 4.NIO原理分析以及代码实现 ...
- nginx反向代理、负载均衡
什么叫反向代理? A用户--> B(在和C同一个机房,并且有公网)--> C(不带公网的机器) 什么场景下会用到反向代理? 1.访问不带公网的内网机器 2.解决两台之间通信有障碍的问题 编 ...
- 上手spring boot项目(三)之spring boot整合mybatis进行增删改查的三种方式。
1.引入依赖. <!--springboot的web起步依赖--><dependency> <groupId>org.springframework.boot< ...
- springboot整合thymleaf模板引擎
thymeleaf作为springboot官方推荐使用的模板引擎,简单易上手,功能强大,thymeleaf的功能和jsp有许多相似之处,两者都属于服务器端渲染技术,但thymeleaf比jsp的功能更 ...
- 【已解决】解决IntelliJ IDEA控制台输出中文乱码问题
IntelliJ IDEA 真的是一款很方便的Java开发工具,但是关于中文乱码这个问题我不得不吐槽,这个编码也弄得这么麻烦干嘛,真想找idea开发者干架,我敢打包票我能在一分钟之内一拳飞过去让他跪下 ...
- idea中自定义快捷键
idea中自定义快捷键 在开发的过程中,总要写一些重复的代码,那么使用自定义快捷键,可以将这些经常用到的代码,自动生成. 1.在idea工具中点击File-->Settings 2.在弹出来的界 ...
- luogu P1358 扑克牌
题目描述 组合数学是数学的重要组成部分,是一门研究离散对象的科学,它主要研究满足一定条件的组态(也称组合模型)的存在.计数以及构造等方面的问题.组合数学的主要内容有组合计数.组合设计.组合矩阵.组合优 ...
- 【CuteJavaScript】ES2019 新特性汇总
最近 ECMAScript2019,最新提案完成:tc39 Finished Proposals,我这里也是按照官方介绍的顺序进行整理,如有疑问,可以查看官方介绍啦~ 另外之前也整理了 <ES6 ...
- 3年Java开发10面阿里、京东、拼多多
拼多多 地点:2号线娄山关路地铁站(金虹桥国际中心) 环境:新的写字楼,环境很好,有种高大上的感觉.大厅进入后需要登记,然后进闸机.电梯是需要刷卡才能使用的.会议室都是用城市名称命名,例如杭州.香港等 ...