# netty-source-code **Repository Path**: Lord_Neil/netty-source-code ## Basic Information - **Project Name**: netty-source-code - **Description**: 拷贝自netty的官网。辅助源码阅读。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2018-01-07 - **Last Updated**: 2020-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 在windows 64下搭建编译源码环境 需要强调的是32位系统编译tcnative肯定会有问题,因为不存在32位的jar包,所以在mvn install的时候下载不到指定的jar,一定会报错。所以该文章只能支持win和Linux64位的操作。 1. 下载netty源码, 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 下对应的 ${os.detected.classifier}注释。四个目录分别是:主目录,handler,example,以及testsuite。(如果还有其他项目报错,估计也是要修改其对应的pom.xml 文件,将其上面提到的 ${os.detected.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,出现如下错误,你就要进行第四步 ![输入图片说明](https://gitee.com/uploads/images/2018/0107/214429_d203a454_858103.png "屏幕截图.png") 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