設定開發環境
請注意,此指南並非「使用者指南」。它並非針對使用 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 會提供指導。如需瞭解如何使用檢查器,請參閱 網路說明頁面。
著作權文字
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
- 請確保你使用 64 位元的 Eclipse 版本。
-
下載 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。