设置开发环境
请注意,本指南不是“用户指南”。它不是为使用 Netty 构建应用程序的“用户”准备的,而是为希望开发 Netty 本身的贡献者(“开发人员”)准备的。
您必须使用 64 位操作系统。
您必须在您的机器上安装 64 位 OpenJDK 8 或更高版本(来自 AdoptOpenJDK 或 Azul Systems 等供应商)、Apache Maven 3.1.1 或更高版本以及 Git。
如果您使用 Linux,则必须安装以下软件包
# yum install lsb-core autoconf automake libtool make tar \
glibc-devel libaio-devel openssl-devel apr-devel \
lksctp-tools
# apt-get install autoconf automake libtool make tar \
libaio-dev libssl-dev libapr1-dev \
lksctp-tools
或者,如果您使用 MacOS
brew install autoconf automake libtool openssl
并且需要关注 git 的配置。如果您使用 Windows,则在您检出代码时,LF 将自动转换为 CRLF
git config --global core.autocrlf true
或者,如果您使用 MacOS,则在您提交代码时,CRLF 将自动转换为 LF
git config --global core.autocrlf input
您还可以查看 构建本机传输 以获取更多信息。
要构建 netty-tcnative(即 BoringSSL 部分),还需要安装 cmake
、ninja-build
和 golang
软件包。Fedora/CentOS 中的 ninja-build
和 golang
可在 Fedora EPEL 存储库中找到。
然后检出代码,并使用 ./mvnw install -DskipTests -T1C
验证您的构建环境是否正常工作。这还将预加载您的本地 Maven 缓存,以便您稍后构建各个模块。
Netty 项目团队使用 IntelliJ IDEA 作为主要 IDE,尽管我们对使用其他开发环境没有意见,只要您遵守我们的编码风格即可。
如果您使用的是 64 位操作系统,请使用 64 位版本的 IntelliJ IDEA。例如,即使您使用的是 64 位 Windows,开始菜单快捷方式也会指向 32 位二进制文件。您必须在安装目录中找到 idea64.exe
并使用它。否则,您会看到 IntelliJ IDEA 抱怨找不到 io.netty:netty-tcnative:windows-x86_32
。
Netty 4.1 及更低版本将 Java 6 作为最低必需的 Java 版本,因此需要编译为 Java 6 字节码。但是,为了性能,代码库还包括对较新 Java API 的引用,并使用运行时版本检查进行了适当的保护。出于此原因,Netty 必须使用 --source
和 --target
标志进行编译,但 IntelliJ 将默认使用较新的 --release
标志,这也启用 API 版本检查。
使用 --release
标志会导致 IntelliJ 在构建 Netty 项目时产生编译错误,因此必须在 编译器设置对话框 中禁用它。
下载 此代码风格配置,并将 Netty project.xml
解压到 <IntelliJ config directory>/codestyles
目录中。选择“Netty project”作为默认代码风格。
下载、解压并导入 此检查配置文件 到您的 IntelliJ IDEA 中,并将其用作默认配置文件。请参阅 此处 了解如何导入检查配置文件。
确保您的修改不会引入任何检查警告。如果您认为这是一个误报,请使用 @SuppressWarnings
注解或 noinspection
行注释(由 IDE 指导)来抑制警告。有关使用检查器的更多信息,请参阅 Web 帮助页面。
版权文本
Copyright $today.year The Netty Project
The Netty Project licenses this file to you under the Apache License,
version 2.0 (the "License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at:
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
检测注释中版权的关键字
The Netty project licenses
允许在旧版权包含的情况下替换版权
The Netty project licenses
- 确保您使用的是 Eclipse 的 64 位版本。
-
下载 os-maven-plugin 并将其放入
<ECLIPSE_INSTALLATION_DIR>/plugins
(Eclipse 4.5)或<ECLIPSE_INSTALLATION_DIR>/dropins
(Eclipse 4.6)目录中,以解决 m2e 无法评估我们pom.xml
中指定的扩展的问题。(与它的名称不同,它既是 Maven 插件,也是 Eclipse 插件。) - 通过“文件 → 导入... → 现有 Maven 项目”菜单导入项目。
- Netty 项目 Maven
pom.xml
设置规定使用 Java SE 1.6,同时隐式使用 Java 7/8(1.7/1.8)功能(如果存在)。这可能会导致 Eclipse 中出现编译错误。有两种方法可以解决此问题 - 在“窗口 → 首选项 → 已安装的 JRE”菜单中查找:* 确保您在“已安装的 JRE”下有可用的 Java 7/8 安装 * 将此 Java 7/8 安装映射到 Java 6:“已安装的 JRE → 执行环境 → Java SE 1.6”
- 或者,可以针对每个 Netty 模块按项目选择 Java 7/8 JRE。