netty源码编译环境搭建

正在学习netty,编译源码,参考下面到的文章,在ubuntu64上编译成了。编译成功到netty是3.10的版本。

 

 

http://blog.csdn.net/wuyinxian/article/details/46382051

最 近在看websocket的东西,正好netty中有讲到websocket,所以把netty源码拿来看一下。该文章就是本人在搭建netty源码编译 环境的一些收获和感悟。望各位指正!不甚感激。在这里顺便给大家推荐一下 李林峰老师的新书《netty权威指南第二版》,其微博@nettying 。更有其书的代码对应的代码https://github.com/wuyinxian124/nettybook2.git(当然是被授权才放到我 git上的偷笑

 

本人将编译好的源码放在git上,其地址是 :https://github.com/netty/netty

需要强调的是32位系统编译tcnative肯定会有问题,因为不存在32位的jar包,所以在mvn install的时候下载不到指定的jar,一定会报错。所以该文章只能支持win和Linux64位的操作。
2. 利用maven编译netty项目,通常不嫩直接执行 mvn clean install ,因为checkstyle 的缘故(具体原因可以参看:http://www.4byte.cn/question/325644/mvn-compile-error-invalid-newline-character.html#)而是使用mvn compile -Dcheckstyle.skip=true (目的是跳过checkstyle )。
3. 为了方面还可以跳过测试,即加上 -DskipTest
如果还有问题(对于windows 直接使用netty官网下载的源码,可能存在问题)。
博主遇到的问题和解决方案如下:
1. 如果是提示 netty-tcnative 的问题
需要修改如下四个目录下的pom.xml文件 将tcnative 下对应的
<classifier>${os.detected.classifier}</classifier> 注释。四个目录分别是:主目录,handler,example,以及testsuite。(如果还有其他项目报错,估计也是要修改其对应的 pom.xml 文件,将其上面提到 的 <classifier>${os.detected.classifier}</classifier> 注释)
然后再执行一个  mvn clean compile -Dcheckstyle.skip=true  -Dtest
2. 如果还是报错 那么试一下 mvn install -DskipTests  -Dcheckstyle.skip=true (博主尝试了一下用mvn install  -Dcheckstyle.skip=true -Dmaven.test.skip=true 依然报错,更多有关-DskipTests和-Dmaven.test.skip=true 参考: http://zephiruswt.blog.51cto.com/5193151/1302770
3. 如果作为maven项目导入eclipse,出现如下错误,你就要进行第四步
4. 将项目直接转为java project项目,进而作为已经存在的项目导入eclipse中。
执行maven命令  mvn eclipse:eclipse

PS:博主发现上传到github上的,已经编译好的源码项目不带 .project  文件,所以你就不能直接作为project导入eclipse了。所以还是要你自己按照上面的方法弄一次,不然eclipse会识别不到。



在ubuntu 14.04(64) 编译netty源码
如果在ubuntu 14.04 64位 编译源码,就不能按照上面的方式了,至少不需要修改pom.xml文件。
具体的执行步骤如下:
1.  确保保持pom文件跟netty官网中的一致。
2. 确保使用的是Linux 64位(ubuntu、centtos)。博主使用的是ubuntu14.04 64位
3. 确保你的Linux core是3.8+(查询方式是 uname -r)
4. 安装tcnative必要的依赖 (参考:http://netty.io/wiki/native-transports.html在命令行中使用:
# RHEL/CentOS/Fedora:
sudo yum install autoconf automake libtool glibc-devel.i686 glibc-devel libgcc.i686 make tar
# Debian/Ubuntu:
sudo apt-get install autoconf automake libtool make gcc-multilib tar
5. 编译安装
mvn -U -X clean package -Dmaven.test.skip=true
或者 mvn install -U -X -DskipTests  -Dcheckstyle.skip=true 

如果还有问题,更多请参考:https://github.com/netty/netty/issues/2558
posted @ 2016-08-16 15:05  水滴石穿100  阅读(2147)  评论(0编辑  收藏  举报