Jetty源碼學習-編譯Jetty源碼二三事

来源:http://www.cnblogs.com/grass-cao/archive/2016/12/10/6155102.html
-Advertisement-
Play Games

開始學習Jetty源碼,費了小半天才編譯成功,把自己拆過的坑記錄下來。 ...


工作小幾個月了,JDK基礎和web應用框架學的的差不多了,開始學習Jetty源碼,費了小半天才編譯成功,把自己拆過的坑記錄下來。

編譯前的環境:

MAVEN 3.3、Eclips eLuna Service Release 1 (4.4.1) 

下載好MAVEN後,得把Eclipse中的maven配置為下載的MAVEN具體請搜索其他博文參考!

  1. 下載源碼
  2. 導入eclipse
  3. 編譯源碼

 

1.下載源碼

1.1 Jetty源碼可以方便的在Github的Jetty工程主頁上下載,鏈接

1.2 進入主頁後,看了的頁面類似如下:

1.3 點擊Jetty工程主頁圖片的1處可以出現下拉彈出菜單,你可以按branch或者tag選擇不同版本的Jetty,本文使用的是Jetty 9.3.x,也就是快照版。

1.4 點擊Jetty工程主頁圖片的2處,顯示下載源碼包的方式,如果你沒有git客戶端或者不想安裝,點擊下載zip包的連接進行直接下載。

 

 

2. 導入eclipse

2.1 下載zip包成功後,進行解壓,jetty包的根目錄下文件一覽如下。在此,為後面敘述方便,稱該目錄為$myJettySourceRoot

該目錄(後續稱為$myJettySourceRoot)中紅框圈中的兩個文件值得註意:

README.md是開發者團隊為編譯源碼的開發者提供的一些提示的內容,但是別當真!完全按他的做是編譯不會成功的!!!

porm.xml是Jetty工程的根porm文件。

2.2 打開Eclipse,選擇File->import->Maven->Exesting Maven Projects。選擇$myJettySourceRoot目錄,我的是C:\Users\Administrator\Downloads\jetty.project-jetty-9.3.x,如下圖,選擇所有工程。點擊“完成”開始導入,然後Maven會開始

下載依賴包,工程可能需要持續3個小時。中途出現的選項一律點“確認”和“resolve later”,可能會出現重啟Eclipse的選項,也點“確認”。

3. 編譯源碼

3.1導入成功後,Eclipse中目錄樹如下,找到Jetty-Protject工程滑鼠右鍵,選擇run as->Maven clean,進行工程清理。

3.2 清理完成後,在選擇etty-Protject工程滑鼠右鍵,選擇run as->run configuration。在Maven Bulid下新建一個build配置。按下圖配置:進行install、但跳過test。(因為有一些測試在本機上難以成功)。點擊“run”開始編譯,中途會出現失敗的場景,處理步驟參考3.3,重覆幾遍後可編譯成功

3.3 編譯失敗的的處理參考。

在編譯中,經常會出現編譯失敗,查看控制台信息會發現"Could not resolve dependencies for xxx:jar:test"的類似信息,出現這種情況是jetty-project某個子模塊依賴了另一個子模塊的test包,出現這種情況,先在Eclipse中找到對應xxx的Maven工程,右鍵run as ->maven install。比如xxx是jetty-plus,就右鍵jetty-plus工程,run as ->maven install,先安裝這個子模塊的所有包,然後再執行3.2,重覆幾次就可以編譯成功。完全編譯成功如下圖:

3.4 在$myJettySourceRoot\jetty-distribution\target\distribution目錄(我的目錄是C:\Users\Administrator\Downloads\jetty.project-jetty-9.3.x\jetty-distribution\target\distribution)下可以查到編譯成功後的文件。

3.5 打開cmd,cd到該目錄下,輸入java -jar start.jar可以啟動Jetty。

 

首發於博客園,原文轉載請註明出於grass_草

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這裡使用了 python 的基本代碼實現了 Linux 系統下 wc 命令程式的基本功能。 ...
  • Maven的一個核心的作用就是管理項目的依賴,引入我們所需的各種jar包等。為了能自動化的解析任何一個Java構件,Maven必須將這些Jar包或者其他資源進行唯一標識,這是管理項目的依賴的基礎,也就是我們要說的坐標。包括我們自己開發的項目,也是要通過坐標進行唯一標識的,這樣才能才其它項目中進行依賴 ...
  • MCSDK簡介 BIOS MCSDK是為TI的高性能多核DSP提供的一套組件,包括: SYS/BIOS實時操作系統 Chip support libraries, drivers, and basic platform utilities Run-time libraries (OpenMP, Op ...
  • 線程的記憶體結構圖 一、主記憶體與工作記憶體 1.Java記憶體模型的主要目標是定義程式中各個變數的訪問規則。此處的變數與Java編程時所說的變數不一樣,指包括了實例欄位、靜態欄位和構成數組對象的元素,但是不包括局部變數與方法參數,因為它們是線程私有的,不會被共用。 2.Java記憶體模型中規定了所有的變數都 ...
  • Python爬蟲實戰 抓取圖書館借閱信息 原創作品,引用請表明出處:Python爬蟲實戰 抓取圖書館借閱信息 前段時間在圖書館借了很多書,借得多了就容易忘記每本書的應還日期,老是擔心自己會違約,影響日後借書,而自己又懶得總是登錄到學校圖書館借閱系統查看,於是就打算寫一個爬蟲來抓取自己的借閱信息,把每 ...
  • 官網 http://www.overbyte.be/ 下載 OverbyteIcsV816 完成後解壓到E:\Delphi7\OverbyteIcsV816\ 1、在library裡加入E:\Delphi7\OverbyteIcsV816\Source目錄。 2、從File->Open中打開E:\D ...
  • 1、基礎知識 最早的基礎知識僅限於那麼一點點的html和css,比牛毛還牛毛的一點點。所以最開始是從immoc上看視頻和跟著練習,花了有一個多月,看完一個路徑從:零開始學習ThinkPHP框架,由於基本沒有基礎,所以一開始有的地方很吃力,後來就先試著用不求甚解的方法去看,以後根據需要再慢慢來補,這樣 ...
  • 在SQL語句中有一些寫的是這樣的: 其中的“xx_id = %d”,這裡的%d指的是要取一個十進位的數(d的意思就是decimal十進位的意思),十進位數的內容就是後面的$bl['student_id']這個。 ps:每天收穫一點點! ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...