首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Jetty 9.3.x 源碼編譯全記錄:Maven + Eclipse 避坑實戰

     編輯:Java 綜合教學

Jetty 9.3.x 源碼編譯全記錄:Maven + Eclipse 避坑實戰

閱讀源碼前,先跑通編譯是基本功。記錄一次 Jetty 9.3.x(快照版)從下載到啟動的完整踩坑路徑。

環境準備

  • JDK 1.8+
  • Maven 3.3+(務必在 Eclipse 配置指向外部 Maven,勿用嵌入版)
  • Eclipse Luna (4.4.1) 或更新版

1. 源碼獲取

GitHub Jetty 專案主頁 → Branch/Tags 選 jetty-9.3.x → Download ZIP(無需 Git 客戶端)。解壓至 $MY_JETTY_ROOT。

關鍵文件:

  • README.md:官方編譯提示 不可全信,按其操作大概率失敗。
  • pom.xml:根模塊 POM。

2. Eclipse 導入

File → Import → Maven → Existing Maven Projects
Root Directory: $MY_JETTY_ROOT
選中所有模塊 → Finish

Maven 開始下載依賴,**預留 2-3 小時**,彈窗一律 Confirm / Resolve Later,需重啟 Eclipse 時確認。

3. 編譯策略:分模塊 Install + 根模塊 Skip Test

根模塊直接 Maven install -DskipTests 常因模塊間 test-jar 依賴失敗。

正確姿勢:

  1. 右鍵 jetty-project → Run As → Maven clean。
  2. 創建 Run Configuration:Goals: install -DskipTests,但先不跑。
  3. 按依賴順序手動 Install 核心模塊:jetty-util → jetty-io → jetty-http → jetty-server → jetty-servlet → jetty-webapp → jetty-plus 等。每個模塊右鍵 Run As → Maven Install。
  4. 核心模塊安裝完成後,再執行根模塊 install -DskipTests。
  5. 遇到 Could not resolve dependencies for xxx:jar:test,即缺少某模塊的 test-jar,按步驟 3 補裝該模塊。

4. 編譯產物與啟動驗證

成功後產物位於:

$MY_JETTY_ROOT/jetty-distribution/target/distribution/

進入目錄:

cd $MY_JETTY_ROOT/jetty-distribution/target/distribution
java -jar start.jar

控制台輸出 Started ServerConnector@...{HTTP/1.1}{0.0.0.0:8080} 即編譯運行成功。

5. 核心避坑總結

坑點癥狀解法
Eclipse 內嵌 Maven依賴下載卡死/版本不一致配置外部 Maven 3.3+
README 指導按文檔跑失敗忽略,採用分模塊 Install
test-jar 循環依賴Could not resolve dependencies for xxx:jar:test先 Install 被依賴模塊
跳過測試部分測試需特定環境(如 HTTP/2、JNI)-DskipTests 必加

源碼編譯成功,才是閱讀源碼的入場券。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved