日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Maven——第1章 Maven 介绍

發布時間:2025/5/22 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Maven——第1章 Maven 介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.1 什么是 Maven

1.1.1 什么是 Maven

Maven 的正確發音是[?mev?n],而不是“馬瘟”以及其他什么瘟。Maven 在美國是一個口語化的詞語,代表專家、內行的意思。
一個對 Maven 比較正式的定義是這么說的:Maven 是一個項目管理工具,它包含了一個項目對象模型 (POM:Project Object Model),一組標準集合,一個項目生命周期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命周期階段(phase)中插件(plugin)目標(goal)的邏輯。

1.1.2 Maven 能解決什么問題

可以用更通俗的方式來說明。我們知道,項目開發不僅僅是寫寫代碼而已,期間會伴隨著各種
必不可少的事情要做,下面列舉幾個感受一下:

  • 我們需要引用各種 jar 包,尤其是比較大的工程,引用的 jar 包往往有幾十個乃至上百個, 每用到一種 jar 包,都需要手動引入工程目錄,而且經常遇到各種讓人抓狂的 jar 包沖突,版本沖突。
  • 我們辛辛苦苦寫好了 Java 文件,可是只懂 0 和 1 的白癡電腦卻完全讀不懂,需要將它編譯成二進制字節碼。好歹現在這項工作可以由各種集成開發工具幫我們完成,Eclipse、IDEA 等都可以將代碼即時編譯。當然,如果你嫌生命漫長,何不鋪張,也可以用記事本來敲代碼,然后用 javac 命令一個個地去編譯,逗電腦玩。
  • 世界上沒有不存在 bug 的代碼,計算機喜歡 bug 就和人們總是喜歡美女帥哥一樣。為了追求美為了減少 bug,因此寫完了代碼,我們還要寫一些單元測試,然后一個個的運行來檢驗代碼質量。
  • 再優雅的代碼也是要出來賣的。我們后面還需要把代碼與各種配置文件、資源整合到一起,定型打包,如果是 web 項目,還需要將之發布到服務器,供人蹂躪。
    試想,如果現在有一種工具,可以把你從上面的繁瑣工作中解放出來,能幫你構建工程,管理 jar包,編譯代碼,還能幫你自動運行單元測試,打包,生成報表,甚至能幫你部署項目,生成 Web 站點,你會心動嗎?Maven 就可以解決上面所提到的這些問題。
  • 1.1.3 Maven 的優勢舉例

    前面我們通過 Web 階段項目,要能夠將項目運行起來,就必須將該項目所依賴的一些 jar 包添加到
    工程中,否則項目就不能運行。試想如果具有相同架構的項目有十個,那么我們就需要將這一份 jar
    包復制到十個不同的工程中。我們一起來看一個 CRM項目的工程大小。
    使用傳統 Web 項目構建的 CRM 項目如下:

    原因主要是因為上面的 WEB 程序要運行,我們必須將項目運行所需的 Jar 包復制到工程目錄中,從
    而導致了工程很大。
    同樣的項目,如果我們使用 Maven 工程來構建,會發現總體上工程的大小會少很多。如下圖:

    小結:可以初步推斷它里面一定沒有 jar 包,繼續思考,沒有 jar 包的項目怎么可能運行呢?

    1.2 Maven 的兩個精典作用

    1.2.1 Maven 的依賴管理

    Maven 的一個核心特性就是依賴管理。當我們涉及到多模塊的項目(包含成百個模塊或者子項目),管理依賴就變成一項困難的任務。Maven 展示出了它對處理這種情形的高度控制。
    傳統的 WEB 項目中,我們必須將工程所依賴的 jar 包復制到工程中,導致了工程的變得很大。那么maven 工程是如何使得工程變得很少呢?
    分析如下:

    通過分析發現:maven 工程中不直接將 jar 包導入到工程中,而是通過在 pom.xml 文件中添加所需 jar包的坐標,這樣就很好的避免了 jar 直接引入進來,在需要用到 jar 包的時候,只要查找 pom.xml 文件,再通過 pom.xml 文件中的坐標,到一個專門用于”存放 jar 包的倉庫”(maven 倉庫)中根據坐標從
    而找到這些 jar 包,再把這些 jar 包拿去運行。那么問題來了
    第一:”存放 jar 包的倉庫”長什么樣?
    第二:通過讀取 pom.xml 文件中的坐標,再到倉庫中找到 jar 包,會不會很慢?從而導致這種方式不可行!
    第一個問題:存放 jar 包的倉庫長什么樣,這一點我們后期會分析倉庫的分類,也會帶大家去看我們的本地的倉庫長什么樣。
    第二個問題:通過 pom.xml 文件配置要引入的 jar 包的坐標,再讀取坐標并到倉庫中加載 jar 包,這樣我們就可以直接使用 jar 包了,為了解決這個過程中速度慢的問題,maven 中也有索引的概念,通過建立索引,可以大大提高加載 jar 包的速度,使得我們認為 jar 包基本跟放在本地的工程文件中再
    讀取出來的速度是一樣的。這個過程就好比我們查閱字典時,為了能夠加快查找到內容,書前面的目錄就好比是索引,有了這個目錄我們就可以方便找到內容了,一樣的在 maven 倉庫中有了索引我們就可以認為可以快速找到 jar 包。

    1.2.2 項目的一鍵構建

    我們的項目,往往都要經歷編譯、測試、運行、打包、安裝 ,部署等一系列過程。
    什么是構建?
    指的是項目從編譯、測試、運行、打包、安裝 ,部署整個過程都交給 maven 進行管理,這個過程稱為構建。
    一鍵構建指的是整個構建過程,使用 maven 一個命令可以輕松完成整個工作。Maven 規范化構建流程如下:

    我們一起來看 Hello-Maven 工程的一鍵運行的過程。通過 tomcat:run 的這個命令,我們發現現在的工程編譯,測試,運行都變得非常簡單。

    《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的Maven——第1章 Maven 介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。