编译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下生成了对应的文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?