第一个 Netty 应用
跟着 Netty in Action 这本书学习 Netty,结果第一个 app 搞了两天都没跑起来,主要卡在 Gradle 编译这一块了。
这篇文章就详细记录了搭建开发环境和编译 Netty app 的详细步骤,免得以后又忘了。
搭建开发环境
基本步骤:
从 http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载 JDK 最新版本装好。
访问 http://sdkman.io/install.html 页面,按照步骤安装 SDKMAN,然后重启终端。
curl -s "https://get.sdkman.io" | bash安装 Gradle。
sdk install gradle
以上步骤如果下载很慢,请默念“FXXK GFW”一百遍!
建立工程结构
新建一个空白目录,在其中执行(如果这一步出错,说明 gradle 版本太老):
|
执行后就得到一个基本的 java app 工程结构了。
现在打开 build.gradle
,修改依赖为:
|
执行:
|
如果一切正常,会看到执行结果 Hello world.
。
创建 Netty Server
这里我们选用 Netty in Action 里第二章的 EchoServer 示例来实践。
在工程目录
src/main/java/
中建立子目录nettyapp/
。从 https://github.com/normanmaurer/netty-in-action 下载所有源代码,并解压缩。
将
src/main/java/com/manning/nettyinaction/chapter2/
中的所有文件复制到我们工程src/main/java/nettyapp/
目录中。删除
src/main/java/App.java
文件。修改所有文件的
package
:package com.manning.nettyinaction.chapter2;修改为
package nettyapp;修改
src/main/java/nettyapp/EchoServer.java
的main()
方法为:public static void main(String[] args) throws Exception {new EchoServer(8080).start();}修改
build.gradle
:mainClassName = 'nettyapp.EchoServer'执行:
gradle run如果显示
nettyapp.EchoServer started and listen on /0:0:0:0:0:0:0:0:8080
表示我们的 netty app 已经跑起来了。
如果需要分发编译好的 netty app,执行:
|
可以将 netty app 打包为 .zip 文件,并且包含各种环境下需要的启动脚本和支持库。
-EOF-